我在这里有一个特殊的问题,我不能通过我的生活弄清楚解决方案是什么.请注意,以下代码不是动态创建的,而是直接在我的aspx文件中创建的.
<button type="button" runat="server" id="btnSubmit" OnServerClick="btnSubmit_Click" onclick="return confirm('Sure?');"> Submit </button>
只要我没有onclick属性就可以正常工作,即OnServerClick处理程序应该被触发.但是当我使用onclick属性时,无论我是否确认或拒绝确认对话框.
我究竟做错了什么?谢谢
解决方法
如果查看生成的源代码,您将看到以下内容:
onclick="return confirm('Sure?'); __doPostBack('btnSubmit','')"
所以发生的事情是_doPostBack永远不会被调用.做你正在寻找的hacky方法如下:
<button type="button" runat="server" id="btnSubmit" OnServerClick="btnSubmit_Click" onclick="if (confirm('Sure?')) ">
真正正确的方法是使用Web控件:
<asp:Button runat="server" OnClick="btnSubmit_Click" OnClientClick="return confirm('Sure?')" Text="Submit" />