【问题标题】:Update Content Page from Master从 Master 更新内容页面
【发布时间】:2012-05-09 18:04:19
【问题描述】:

我有一个母版页和一个内容页。不太清楚如何做到这一点。在母版页中执行某些操作后,如何重置/刷新内容页。我正在做的事情是更改下拉列表,然后指示您在内容页面中可以看到的内容。如果我可以从可以做到这一点的母版页调用内容页面的页面加载。

谢谢

【问题讨论】:

  • 处理页面中母版页的自定义事件。
  • 感谢您的快速回复。不太确定该怎么做。可以举个例子吗?

标签: c# asp.net master-pages


【解决方案1】:

处理页面中母版页的自定义事件。

//Event in MasterPage
public delegate void SomethingSelected(object sender, String SelectedValue);
public event SomethingSelected OnSomethingSelected;

//SelectedIndexChanged event in MasterPage
protected void DropDonwnList1_SelectedIndexChanged(object sender, EventArgs e)
{
    OnSomethingSelected(sender, ((DropDownList)sender).SelectedValue);
}

内容页面(假设类型为SiteMaster):

protected void Page_Init(object sender,EventArgs e){
    var master = (SiteMaster)Page.Master;
    master.OnSomethingSelected +=  MasterSelected;
}

private void MasterSelected(object sender, string selectedValue)
{ 
    // now you can handle the master's event and update your content page
}

【讨论】:

  • 嗨@Tim,我知道帖子太旧了,实际上我也面临同样的问题,我在母版页中有一个下拉列表,其中列出了货币,然后在内容页面中,我想显示基于所选货币的计算值,我尝试了您提到的方法,但是当下拉列表更改时,它首先加载内容页面,然后进入下拉列表 selectedindex 事件,然后引发自定义事件,但是到那时,内容页数据已加载。
【解决方案2】:

有关事件的顺序,请参阅http://msdn.microsoft.com/en-us/library/ms178472.aspx。具体来说,“母版页的行为类似于页面上的子控件:母版页 Init 事件发生在页面 Init 和 Load 事件之前,而母版页 Load 事件发生在页面 Init 和 Load 事件之后。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-01-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-06-10
    • 1970-01-01
    • 2020-07-28
    相关资源
    最近更新 更多