手动提交代替asp.net的button控件提交
2016-07-18 00:00
447 查看
摘要: 虽然在asp.net的button控件中提供了OnClientClick事件,可以通过OnClientClick=return xxx()返回值来判断是否执行<asp:button/>的onclick提交。 但是这种情况要求必须返回true or false才能使用,有些情况我们不方便返回true or false,这时可以放弃使用控件的onclick ,设置UseSubmitBehavior 属性,用js 来手动提交form表单
今天在项目里的需求遇到“提交之前要弹窗用户确认后删除”,如果是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事件最终被解析成:
最终被编译成 onclick=“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控件部分:
js部分:
bootstrap弹窗部分:
今天在项目里的需求遇到“提交之前要弹窗用户确认后删除”,如果是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事件最终被解析成:
最终被编译成 onclick=“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', ''); }
相关文章推荐
- JS在onclientclick里如何控制onclick的执行
- 验证控件与Button的OnClientClick事件详细解析
- 关于asp.net button按钮的OnClick和OnClientClick事件
- OnClientClick 和 OnClick的关系
- js方法内Ajax请求数据判断,验证无效(OnClientClick="return Method();"),还是直接执行后台代码
- ASP.NET MVC进阶之路:深入理解Controller激活机制并使用Ioc容器创建对象
- asp.net对象——Response、Request
- NET Core环境并创建运行ASP.NET网站
- Mvc多级Views目录 asp.net mvc4 路由重写及 修改view 的寻找视图的规则
- ASP.NET身份认证
- C# WinForm 导出导入Excel/Doc 完整实例教程[使用Aspose.Cells.dll]
- asp.net MVC 应用程序的生命周期
- asp、aspx、php、jsp万能密码大全
- ASP.NET WebForm中用async/await实现异步
- 云服务器下搭建ASP.NET Core环境
- ASP.NET GirdView后台动态绑定数据
- 使用ASP.Net WebAPI构建REST服务(六)——Self-Host
- 使用ASP.Net WebAPI构建REST服务(五)——客户端
- 使用ASP.Net WebAPI构建REST服务(四)——参数绑定
- 使用ASP.Net WebAPI构建REST服务(三)——返回值