如何设置调用usercontrol的方法链接
本文关键字:usercontrol 方法 链接 调用 何设置 设置 | 更新日期: 2023-09-27 17:53:19
我已经创建了一个显示标题的用户控件(而不是
,我的意思是标题,日期时间页面被创建等等)在我的网站上的每个页面。在那个用户控件中,我也有一个链接。将显示在IF (user = admin)
页面上的链接。
目前这个链接是一个纯链接,我没有问题,改变"navigateUrl"为每个页面的正确值。(每个页面都包含这个用户控件,并且从每个页面设置navigateUrl的值。)
但是!
在我的一些页面上,我使用链接按钮而不是超链接。然后我必须从页面中添加链接按钮。用usercontrol.ascx代替usercontrol.ascx
我的问题是,我想把我的用户控件中的超链接改为一个链接按钮,这样我就可以用那个链接调用方法。方法在这一页。Aspx,不在用户控制范围内)
每个页面调用的方法不同,所以我想在每次包含用户控件时设置调用哪个方法。
如果在我的用户控件中有
<asp:LinkButton ID="LinkButton1" runat="server">LinkButton</asp:LinkButton>
现在我在usercontrol中设置值:
mainPageHeader1.headTitle = "text";
如何设置链接按钮调用的方法?
更新
在UserControl的标记中,指定click事件的处理程序
<asp:LinkButton OnClick="LinkButton1_Clicked" runat="server" ID="LinkButton1" />
在你的usercontrol
中声明一个自定义事件public class MyUserControl
{
public event System.EventHandler LinkButtonClicked;
//add handler for your LinkButton
protected void LinkButton1_Clicked(object sender, EventArgs e)
{
//Raise your custom event here that can be handled in any page that use your control
LinkButtonClicked(sender, e);
}
}
在您的页面中。为您的自定义事件添加处理程序
protected void MyUserControl2_LinkButtonClicked(object sender, EventArgs e)
{
//handle the event here
}
在添加控件的页面中,
<custom:MyUserControl ID="MyUserControl2" runat="server"
LinkButtonClicked="MyUserControl_LinkButtonClicked" />
在后台代码中订阅事件完成了这项工作。我还没弄清楚为什么它不能从标记中工作。
从UserControl所在页面的Page_Load中执行
MyUserControl2.LinkButtonClicked += new EventHandler(MyUserControl_LinkButtonClicked);
,它应该工作。
检查事件是否已经订阅到代码后置(eventhandler += EventHandler(sender, e)
或aspx标记OnClick="EventHandlerMethodName"
) -如果它没有订阅到某处