这是我的子页面文件和我的母版页文件的一部分。我将传递strName,从子页面到母版页。我想在子页面中访问此母版页变量,并在页面加载之前或之前将子页面变量分配给母版页。我经常得到最后一个选中的值但不是当前值
例如,鉴于记录显示玛丽,约翰,彼得,
如果我点击Mary,则显示无 如果我点击彼得,请告诉玛丽 如果我舔约翰,请表明彼得
您能否建议并说明如何解决此问题?
以下是我的代码
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)
{ ,,,,
答案 0 :(得分:3)
不幸的是,MS没有提供很好的方法。你基本上有两个选择。
从子页面访问控件,然后设置您需要的任何值(示例中的子页面为this
):
Label label1 = this.Master.FindControl("Label1") as Label;
label1.Text = "Hello";
首选在母版页上提供某种设置器。这是“更安全”,因为子页面不直接操纵主控件。
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; }
}