onServerClick函数无法处理动态创建

时间:2017-12-04 05:27:56

标签: c# html asp.net

我有几个锚点按钮,onServerClick方法是动态创建的,但当我点击网页上的按钮时,他们不会调用该函数。以下是标签的示例:

<a href="#" runat="server" id="button0" class="btn btn-default btn-sm" onserverclick="reportMessage" creator="Tom" content="This is a test."><i class="fa fa-flag"></i> Report</a>

以下是一些被调用的方法:

private void reportMessage(object sender, EventArgs e)
    {
        var btn = (HtmlAnchor)sender;
        string content = btn.Attributes["content"].ToString();
        string commentCreator = btn.Attributes["creator"].ToString()}

感谢任何帮助。

1 个答案:

答案 0 :(得分:0)

由于button0是HTML锚控件ID,您可以在ServerClick事件中为Page_Load事件添加处理程序,以处理每个锚链接,如下所示:

protected void Page_Load(object sender, EventArgs e)
{
    HtmlAnchor btn = button0 as HtmlAnchor;
    btn.ServerClick += new EventHandler(reportMessage);
}

此外,您可以添加onclick包含return true的事件,以确保触发服务器点击事件。

<a href="#" runat="server" id="button0" onserverclick="reportMessage" onclick="return true;" ...>Link Text</a>

注意:由于reportMessage是绑定到HtmlAnchor的事件处理程序方法,因此我建议使用protected级别而不是private

类似问题:

Adding onserverclick event to a HtmlAnchor dynamically