将 MasterPage ImageButton 事件传递给内容页面

2024-06-25

我在 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"/>

母版页实际上是页面的子级(事实上,它是一个 UserControl)。我们不希望页面必须了解其子控件的私密细节(这就是为什么我们首先将这些方面委托给这些控件),因此正确的方法是处理主控件上的单击事件页面并从那里触发页面处理的母版页上的另一个事件:

Master:

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);
    }
}

Page:

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
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

将 MasterPage ImageButton 事件传递给内容页面 的相关文章

随机推荐