今天在使用jquery的dialog时,需要把服务器断控件放在对话框中,然后服务器端控件就失效了。
百度了一下,多数都说是因为jquery把dialog中的东西加载到body中了,没有在form中,使用$("#dialog").appendTo("form")可以解决。
但是,使用该方法后,dialog中的控件等都显示在了页面中,而dialog中什么也没有了。怎么办?
是不是我在那写的有问题,
期待大家的回复。谢谢

解决方案 »

  1.   

    没用过dialog,用firebug查看生成的代码,把原来的控件生成的HTML元素移到dialog元素里,不知道行不行
      

  2.   


    <script type="text/jscript" src="http://www.cnblogs.com/js/jqueryUI/js/jquery-ui-1.8.4.custom.min.js"></script>
        <script type="text/jscript">
          $(document).ready(
              function() 
              {
                 $("#showCourseDiv").dialog
                 ({autoOpen: false,
                    height: 200,
                    width: 400,
                    modal: true,    
                  });          }
          );        function ShowDiv(gid)
            {
                    $("#hfGroupId").val(gid);
                   //dilog默认会把弹出框层,追加到body上面.但asp.net需要控件都在form中.
                    $("#showCourseDiv").parent().appendTo($("form:first")); 
                    $("#showCourseDiv").dialog('open');         
            }
      

  3.   

    查找dialog.js倒数第50行代码(好像是在这个范围内),关键字(append("body");)修改成(append("form"))即可。