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)
        {  ,,,,

c# ASP.. NET母版页和ChildPage -从子页分配字符串到母版页

不幸的是,MS没有提供一个很好的方法来做到这一点。你基本上有两个选择。

  1. 从子页面访问控件,然后设置您需要的任何值(在示例中子页面是this):

    Label label1 = this.Master.FindControl("Label1") as Label;
    label1.Text = "Hello";
    
  2. 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; }
     }