我在使用包含按钮的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";
}
答案 0 :(得分: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函数,将onserverclick
更改为onclick
:< / p>
<input type='button' runat='server' id='butResetPassword' value='Reset Password' onclick='butSendEmail_Click' />
然后有一些j来处理这个问题:
<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>