我在页面上有多个用户控件,每个用户控件都有多个链接按钮,这些按钮在服务器端执行相同的逻辑。是否有一种方法可以让所有链接按钮具有在页面后面的代码中定义的相同事件处理程序?
如果需要,我可以将链接按钮更改为任何其他HTML或ASP.NET控件,只要它可以支持可单击的图像。
答案 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)