1

我正在使用包含一个按钮的 StringBuilder 在代码中渲染一些 html。我也在尝试为此添加一个处理程序,我认为它不会触发也许不足为奇。我可以以这种方式将事件处理程序包含到按钮中吗?

sb.Append("<td>");
sb.Append("<input type='button' runat='server' id='butResetPassword' value='Reset Password' onserverclick='butSendEmail_Click' />");
sb.Append("</td>");
User.InnerHtml = sb.ToString();

这是出现在页面后面的相同代码中的事件处理程序

protected void butSendEmail_Click(object sender, EventArgs e)
{
    labTester.InnerText = "Thanks for clicking me";

 }
4

1 回答 1

1

我最近回答了你一个类似的问题。

除非您有充分的理由在后面的代码中生成标记,否则请将其分开,否则请坚持使用经典 ASP。

你可以做:

标记:

<asp:Button runat="server" id="butResetPassword" OnClick="butSendEmail_Click" />

后面的代码:

protected void butSendEmail_Click(object sender, EventArgs e)
{
    //Reset the password here
    labTester.InnerText = "Thanks for clicking me";
}

编辑* 如果您只需要显示该确认消息而不与任何数据或控件交互,那么您可以将按钮绑定到 js 函数,更改onserverclickonclick

<input type='button' runat='server' id='butResetPassword' value='Reset Password' onclick='butSendEmail_Click' />

然后有一些js来处理这个:

<script type="text/javascript">
   function butSendEmail_Click() {
       alert("Thanks for clicking me");

       //Or set the labels text
       var elem = document.getElementById("labTester");
       elem.InnerHtml = "Thanks for clicking me";
   }
</script>
于 2013-06-18T10:37:25.443 回答