【问题标题】:Adding onserverclick event to a HtmlAnchor dynamically动态地将 onserverclick 事件添加到 HtmlAnchor
【发布时间】:2013-09-11 14:36:09
【问题描述】:

我有一个页面,想将 onserverclick 事件附加到我现有的 HtmlAnchor。

在设计视图中我首先添加控件

<a runat="server" id="lnkFre" title="FR" onclick="document.getElementById('ctl00_hidLang').value='en-US';"><span>Français</span> </a>

我试过这样。

HtmlAnchor lnkFre = FindControl("lnkFre") as HtmlAnchor;
lnkFre.ServerClick += new EventHandler(lnkLang_Click);

这里的 lnkLang_Click 是一个可以从这个页面访问的类中的事件。

但在运行时它不会被添加。

我希望有这样的东西。

<a runat="server" id="lnkFre" title="FR" onserverclick="lnkLang_Click" onclick="document.getElementById('ctl00_hidLang').value='fr-BE';"><span>Français</span> </a>

这样可以吗?或者请建议我另一种方法。

非常感谢

【问题讨论】:

    标签: c# asp.net .net event-handling anchor


    【解决方案1】:

    这对我有用:

    HTML

    <a href="#A" runat="server" id="MyAnchor" onclick="alert('test');return true;">A</a>
    

    代码背后

    protected void Page_Load(object sender, EventArgs e)
    {
         HtmlAnchor lnkFre = MyAnchor as HtmlAnchor;
         lnkFre.ServerClick += new EventHandler(lnkFre_ServerClick);
    }
    
    void lnkFre_ServerClick(object sender, EventArgs e)
    {
         throw new NotImplementedException();
    }
    

    您显然无法在运行时看到标记,因为事件是动态绑定的,但它会调用服务器点击事件。

    还请注意 onclick 事件末尾的return(true);。这对于服务器点击也触发是必要的。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-10-20
      • 1970-01-01
      • 1970-01-01
      • 2019-11-13
      • 1970-01-01
      • 1970-01-01
      • 2019-03-10
      • 2018-05-23
      相关资源
      最近更新 更多