加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > asp.Net > 正文

asp.net – 将MasterPage ImageButton事件传递给内容页面

发布时间:2020-12-16 07:21:28 所属栏目:asp.Net 来源:网络整理
导读:我在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=
我在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上的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);
    }
}

页:

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
}

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读