1

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

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

非常感谢

4

1 回答 1

2

这对我有用:

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();
}

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

另请注意return(true);onclick 事件结束时的 。这对于服务器单击也触发是必要的。

于 2013-09-11T14:53:06.150 回答