代码之家  ›  专栏  ›  技术社区  ›  rick schott

将母版页ImageButton事件传递到内容页

  •  4
  • rick schott  · 技术社区  · 15 年前

    我在母版页中有ImageButton。我想启动onclick事件并由宿主在masterpage内的.aspx页捕获?

    MasterPage:

    <asp:ImageButton ID="btnClear" OnClick="Clear_Click" 
     ImageUrl="images/Back_Icon_06.png" runat="server" AlternateText="Clear" 
     width="38"   height="39"/>
    
    2 回复  |  直到 15 年前
        1
  •  8
  •   Rex M    15 年前

    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
    }
    
        2
  •  1
  •   Community leo1    7 年前

    MSDN reference

    what Rex M specified

    // Master Page Code
    public event EventHandler ClearClick
    {
       add
       {
          this.btnClear.Click += value;
       }
       remove
       {
          this.btnClear.Click -= value;
       }
    }
    
    // Content Page markup
    <%@ Page  masterPageFile="~/MasterPage.master"%>
    
    <%@ MasterType  virtualPath="~/MasterPage.master"%> 
    
    // Content Page Code
    protected override void OnInit(EventArgs e)
    {
        base.OnInit(e);
        this.Master.ClearClick += new EventHandler(OnClearClick);
    }
    
    private void OnClearClick(object sender, EventArgs e)
    {
       // Handle click here
    }