原文:JQuery EasyUI弹出对话框解决Asp.net服务器控件没法执行后台代码的方法javascript
jquery-easyui是一个基于jquery的图形界面插件,利用easyui能够建立不少好看的网页界面效果,easyui的相关地址是:http://jquery-easyui.wikidot.com/; easyui的中文文档地址是:http://www.easyui.net/,本人也利用easeyUI在作一些页面效果。因为我很喜欢那种弹出的对话框界面,所以在界面中应用了Dialog类来处理一些确认的信息,但在利用中发现,弹出的对话框,不能再继续执行asp.net按钮的后台响应代码。界面以下所示。
操做是在按钮提交后,弹出一个对话框层,用来确认流程的信息,不过奇怪的是里面本来是asp.net图片服务器控件却不能提交了,没法触发后台按钮,其中页面的代码以下所示,注意若是要对话框默认开始不显示出来,经过设置closed:true,属性便可。
对应的弹出层内容以下所示:html
</div> java
搜索相关问题发现,其中主要问题是出在:JQuery会把Dialog的元素append到Body里面,而不是form里面。研究了页面源码后发 现,jQuery UI Dialog控件初始化时动态生成的HTML元素被添加到页面的尾部、form元素的后面,而原始的Dialog模板部分(其内包含表单元素)也被移到了 动态生成的HTML元素内。也就是说,原先在form内的表单在Dialog初始化后就被移到form外了,这就致使了Dialog模板内表单所有失效。jquery
解决方法是增长一行代码便可:dlg.parent().appendTo(jQuery("form:first")); 服务器
也就是修改开始部分建立对话框的脚本便可:app
另外你也能够经过这种方法来处理该问题:asp.net
$('#dialog').dialog('open');
$('#dialog').parent().appendTo($("form:first"))
return false;ide
});post
上述的解决问题详细能够参考老外的一篇问题回复文章:JQuery UI Dialog with Asp .NET button postback..ui