用户控件中的多个链接按钮需要在aspx页面中调用事件处理程序

时间:2011-01-25 15:08:57

标签: asp.net asp.net-2.0 asp.net-4.0

我在页面上有多个用户控件,每个用户控件都有多个链接按钮,这些按钮在服务器端执行相同的逻辑。是否有一种方法可以让所有链接按钮具有在页面后面的代码中定义的相同事件处理程序?

如果需要,我可以将链接按钮更改为任何其他HTML或ASP.NET控件,只要它可以支持可单击的图像。

2 个答案:

答案 0 :(得分:2)

在您的usercontrol中创建一个事件并连接它。然后从链接按钮OnClick事件处理程序:

调用它

UserControl.ascx:

<asp:LinkButton
runat="server"
id="linkbutton1"
OnClick="LinkButtonClicked">
Click Me
</asp:LinkButton>
<asp:LinkButton
runat="server"
id="linkbutton2"
OnClick="LinkButtonClicked">
Click Me Again
</asp:LinkButton>

UserControl.ascx.cs

public event EventHandler UserControlLinkClick;

protected void LinkButtonClicked(object sender, EventArgs e)
{
   if (this.UserControlLinkClick!= null)
       {
           this.UserControlLinkClick(this, e);
       }
}

在您的父页面内,用户控制UserControlLinkClick:

protected override void OnInit(EventArgs e)
{
    MyUserControl uc = LoadControl("~/PathToUserControl.ascx");
    uc.UserControlLinkClick += new EventHandler(MyUserControl_UserControlLinkClick);
}

protected void MyUserControl_UserControlLinkClick(object sender, EventArgs e)
{
    //this code will execute when the usercontrol's LinkButtonClicked event is fired.
}

希望有所帮助!!

答案 1 :(得分:0)

在自定义控件中创建一个事件/代理。然后在您的页面代码后面,您可以向委托添加事件处理程序或订阅方法。

Link for Events

Link for Delegates

希望这有帮助