ric*_*ott 4 asp.net master-pages
我在MasterPage中有ImageButton.我希望OnClick事件触发并被MasterPage中托管的.ASPX页面捕获?
母版:
<asp:ImageButton ID="btnClear" OnClick="Clear_Click"
ImageUrl="images/Back_Icon_06.png" runat="server" AlternateText="Clear"
width="38" height="39"/>
Run Code Online (Sandbox Code Playgroud)
母版页实际上是页面的子页面(事实上,它是一个UserControl).我们不希望页面必须知道其子控件的私密细节(这就是为什么我们首先将这些方面委托给那些控件),所以正确的方法是处理master上的click事件页面并从那里触发页面处理的母版页上的另一个事件:
主:
public event EventHandler SomethingHappened;
protected void Button_Click(object sender, EventArgs e)
{
OnSomethingHappened(EventArgs.Empty);
}
protected void OnSomethingHappened(EventArgs e)
{
if(this.SomethingHappened != null)
{
this.SomethingHappened(this, e);
}
}
Run Code Online (Sandbox Code Playgroud)
页:
protected override void OnInit(EventArgs e)
{
base.OnInit(e);
//allows us to change master pages
if(this.Master is MyMaster)
{
((MyMaster)this.Master).SomethingHappened += new EventHandler(HandleSomethingHappened);
}
}
private void HandleSomethingHappened(object sender, EventArgs e)
{
//deal with it
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
4204 次 |
| 最近记录: |