将 onserverclick 事件动态添加到 HtmlAnchor

本文关键字:HtmlAnchor 添加 动态 onserverclick 事件 | 更新日期: 2023-09-27 18:31:00

我有一个页面,想将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>

这样可能吗?或者请向我推荐另一种方法。

多谢

将 onserverclick 事件动态添加到 HtmlAnchor

这对

我有用:

.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);。这是服务器单击也触发所必需的。