收藏:关于UseSubmitBehavior和OnClientClick同时使用,导致无法触发后台事件的问题

经常会有正样的需求,在用户做一个不易恢复并且容易误操作的动作时需要给用户以提示,用户确认后继续执行动作。

简单的解决方案是:前台用OnClientClick事件中使用Confirm给用弹出确认提示框,用户确认后继续执行后台代码,取消的不做处理。 但是最近突然遇到这种方法不灵了,反复确认后发现了button的UseSubmitBehavior属性被设置成了false。类似问题,网上找到了这个帖子

以这个帖子为蓝本说明下具体的解决方案,这里只说明帖子中指出的第一种方案:

      <td style=" 12%; padding: 5px;" align="center">
                <asp:Button ID="Button2" runat="server" UseSubmitBehavior="false" Text="订单开票" OnClientClick='return Checked();'
                    OnClick="Button2_Click" Width="90px" ClientIDMode="Static" />
            </td>

原有问题代码如下:<asp:Button ID="IbtnSave" runat="server"  Text="保存"  CssClass="buttonCss" OnClientClick=" return true;" OnClick="IbtnSave_Click1"  UseSubmitBehavior="false"/>

解决方法如下:

<script type="text/javascript" >
        function CheckDelete() {
            if (confirm('你确定要删除XX吗?')) {
                return true;
            }
            else {
                return false;
            }
        }
    </script>

按钮代码修改如下:

 <asp:Button ID="IbtnSave" runat="server"  Text="保存"  CssClass="buttonCss" OnClientClick=" if(!CheckDelete()){return false;}" OnClick="IbtnSave_Click1"  UseSubmitBehavior="false"/>

原文地址:https://www.cnblogs.com/Unrmk-LingXing/p/4063561.html