ASP.NET:如果使用onclick,则不会调用OnServerClick事件处理程序

前端之家收集整理的这篇文章主要介绍了ASP.NET:如果使用onclick,则不会调用OnServerClick事件处理程序前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我在这里有一个特殊的问题,我不能通过我的生活弄清楚解决方案是什么.请注意,以下代码不是动态创建的,而是直接在我的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" />

猜你在找的asp.Net相关文章