手动提交代替asp.net的button控件提交

今天在项目里的需求遇到“提交之前要弹窗用户确认后删除”,如果是confrim的话就很简单,直接OnClientClick=return  aaa();   在  function aaa()里写confrim并且根据用户的选择return一个true或者false就OK了。  但是项目是用的bootstrap的样式,要求使用bootstrap的模态框来弹窗提醒(bootstrap的提示框两个选项是单独的div或者button或者<a>标签等),我只能在aaa()里弹出bootstrap的模态框,但是模态框选择的什么不能返回到aaa()里,也返回不到 OnClientClick里。

请教过经理之后,给button添加了usesubmitbehavior=“false”,在浏览器按F12,可以看到OnClientClick事件最终被解析成:

最终被编译成 οnclick=“return Submit();if(true) _doPostBack('btn_submit','')” 

UseSubmitBehavior 属性(摘自文档):

使用 UseSubmitBehavior 属性来指定 Button 控件使用客户端浏览器的提交机制还是 ASP.NET 回发机制。默认情况下,此属性的值为 true,从而导致 Button 控件使用浏览器的提交机制。如果指定为 false,则 ASP.NET 页框架将客户端脚本添加到页面,以将窗体发送到服务器。

当 UseSubmitBehavior 属性为 false 时,控件开发人员可以使用 GetPostBackEventReference 方法来返回 Button 的客户端回发事件。 GetPostBackEventReference 方法返回的字符串包含客户端函数调用的文本,可以插入到客户端事件处理程序中。

 

这样我们可以不再给Submit()方法返回ture和false,在需要提交的时候直接写 _doPostBack('按钮id','')来把form表单手动提交,代码如下

asp,net控件部分:

 <asp:Button runat="server" CssClass="btn btn-success" UseSubmitBehavior="false" Text="Submit" ID="btn_submit" OnClientClick="return Submit()"  />

js部分:

//提交按钮判断选中弹出模态框
        function Submit() {
            if (document.getElementById("NIL").checked) {
                $("#delConfirm").modal('show');
            }
//如果NIL复选框没被选中,直接_doPostBack()提交
            else
                __doPostBack('btn_submit', '');
        }

bootstrap弹窗部分:

<--删除弹窗confirm-->
        <div id="delConfirm" class="modal hide">
            <div class="modal-header">
                <button data-dismiss="modal" class="close" type="button">×</button>
                <h3>confirms your actions </h3>
            </div>
            <div class="modal-body">
                <p>您勾选了NIT,Charge信息将被清空,您确定这样做吗</p>
            </div>
            <div class="modal-footer">
<--如果选择sure确认,则直接调用chargeBack()方法提交-->
                <a data-dismiss="modal" class="btn btn-primary" onclick="chargeBack()">Sure</a>
                <a data-dismiss="modal" class="btn" >Cancel</a>
            </div>
        </div>

//chargeBack里直接就是提交
function chargeBack(sub) {
            __doPostBack('btn_submit', '');
        }

 

转载于:https://my.oschina.net/CrazyBoy1024/blog/714177

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值