将onserverclick事件动态添加到HtmlAnchor

时间:2013-09-11 14:36:10

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

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

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

非常感谢

1 个答案:

答案 0 :(得分: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);。这对于服务器点击也是必要的。