我可以将主页中的事件冒泡到ASPX

时间:2010-01-29 03:37:38

标签: asp.net master-pages

我可以在主页面中按下按钮点击事件,以便由aspx页面中的事件处理程序处理吗?

2 个答案:

答案 0 :(得分:1)

您可以将事件处理程序和连接公开给它,如下所示:

在主人:

public event EventHandler ButtonClick
{
  add { ButtonThatGetsClicked.Click += value; }
  remove { ButtonThatGetsClicked.Click -= value; }
}

在页面中:

protected override void OnLoad(EventArgs e)
{
  base.OnLoad(e);
  ((MyMasterType)Master).ButtonClick += MyHandler;
}

private void MyHandler(object sender, EventArgs e)
{
  //Do Something
}

此外,您可以避免使用Master类型转换,并使用aspx标记中的@MasterType directive将其作为Master的类型显示在intellisense中。

答案 1 :(得分:0)

您可以重播该活动。在主页面中声明一个新的相应事件,例如HelpClicked,然后使用该主页的aspx页面可以订阅该事件并对其进行适当处理。如果没有订阅者(或者使用带有Handled属性的EventArgs或类似的东西),master也可以采取默认操作。