加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > asp.Net > 正文

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

发布时间:2020-12-15 22:32:47 所属栏目:asp.Net 来源:网络整理
导读:我在这里有一个特殊的问题,我不能通过我的生活弄清楚解决方案是什么.请注意,以下代码不是动态创建的,而是直接在我的aspx文件中创建的. button type="button" runat="server" id="btnSubmit" OnServerClick="btnSubmit_Click" onclick="return confirm('Sure?
我在这里有一个特殊的问题,我不能通过我的生活弄清楚解决方案是什么.请注意,以下代码不是动态创建的,而是直接在我的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" />

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读