如何设置调用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的方法链接

更新

在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") -如果它没有订阅到某处

,这将是空的