JQuery dialog弹出对话框解决Asp.net服务器控件无法执行后台代码的方法
搜索相关问题发现,其中主要问题是出在:JQuery会把Dialog的元素append到Body里面,而不是form里面。研究了页面源码后发现,jQuery UI Dialog控件初始化时动态生成的HTML元素被添加到页面的尾部、form元素的后面,而原始的Dialog模板部分(其内包含表单元素)也被移到了 动态生成的HTML元素内。也就是说,原先在form内的表单在Dialog初始化后就被移到form外了,这就导致了Dialog模板内表单全部失效。
解决方法是增加一行代码即可:dlg.parent().appendTo(jQuery("form:first"));?
也就是修改开始部分创建对话框的脚本即可:
$('#dialog_link').click(function () { $('#dialog').dialog('open'); $('#dialog').parent().appendTo($("form:first")) return false; });
?参考:
http://stackoverflow.com/questions/757232/jquery-ui-dialog-with-asp-net-button-postback
?