c# ASP.. NET母版页和ChildPage -从子页分配字符串到母版页
本文关键字:母版页 分配 字符串 ASP NET ChildPage | 更新日期: 2023-09-27 17:50:41
下面是我的子页面文件和母版页面文件的部分。我要通过strName,从子页到母版页。我想在子页中访问这个母版页变量,并在页面加载时或之前将子页变量分配给母版页。我经常得到最后选择的值,但不是当前值
例如,给定记录显示玛丽,约翰,彼得,
如果我单击Mary,则不显示如果我点击彼得,显示玛丽如果我点击John,显示Peter
你能建议并展示如何解决这个问题吗?
下面是我的代码 protected void grdNameSelection_ItemCommand(object sender, GridCommandEventArgs e)
{
RadGrid CurrentGrid = (RadGrid)sender;
GridData GridSource = PageSource.GrdSrcNameSelection;
String a = GridSource.state.ToString();
if (e.CommandName == "SelectCurrent")
{
foreach (GridDataItem item in CurrentGrid.SelectedItems)
{
RowData row = (RowData)GridSource.Current[item.DataSetIndex];
string Name = row.Name;
}
}
}
protected void grdCompanySelection_PreRender(object sender, EventArgs e)
{
UserSession.Instance.CurrentName= Name ;
RadGrid CurrentGrid = (RadGrid)sender;
GridData GridSource = PageSource.GrdSrcCompanySelection;
CommandButtonDisplay(GridSource, CurrentGrid);
}
主页
protected void Page_init(object sender, EventArgs e)
{
}
protected void Page_Load(object sender, EventArgs e)
{
lblHeader.Text = UserSession.Instance.CurrentName;
if (!Page.IsPostBack)
{ ,,,,
不幸的是,MS没有提供一个很好的方法来做到这一点。你基本上有两个选择。
-
从子页面访问控件,然后设置您需要的任何值(在示例中子页面是
this
):Label label1 = this.Master.FindControl("Label1") as Label; label1.Text = "Hello";
-
Preferred在母版页上提供某种setter。这样更"安全",因为子页不直接操作母页的控件。
MyType master = this.Master as MyType; if(master == null) return; master.MyProperty = "something"; // In master page public string MyProperty { get { return label.Text; } set { label.Text = value; } }