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"));
也就是修改开始部分创建对话框的脚本即可:
<script language="javascript"> $(function(){ var dlg = jQuery("#dd").dialog({ draggable: true, resizable: true, closed:true, show: 'Transfer', hide: 'Transfer', autoOpen: false, width:600, minHeight: 10, minwidth: 10 }); dlg.parent().appendTo(jQuery("form:first")); }); function open1(){ $('#dd').dialog('open'); } function close1(){ $('#dd').dialog('close'); } </script>
另外你也可以通过这种方法来处理该问题:
$('#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
相关推荐
apowerfulman 2020-03-03
hustlei 2011-03-03
Mexican 2011-08-31
larrywangsun 2011-08-09
TTHHVV 2011-09-28
87384559 2014-11-11
xuewenke 2015-11-04
火星的你 2015-10-25
王磊的程序员之路 2019-06-19
十一郎的IT 2013-10-29
攻城师 2019-06-28
89453862 2016-05-13
SinhaengHhjian 2015-11-04
sunnylinner 2014-11-11