小弟 在这请教了
       我封装了一个弹出类
   /// <summary>
        /// 弹出模式窗体
        /// </summary>
        /// <param name="page"></param>
        /// <param name="url"></param>
        public static void OpenModalDialog(System.Web.UI.Page page, string url)
        {
            
            //string tt = "<script language=javascript> qminoa = window.open('" + page.Request.ApplicationPath + "/FSAdmin/PGS/" + url + "'"
            //        + ",'','toolbar=no,menubar=no,titlebar=yes,directories=no,resizable=yes,status=yes,fullscreen=no,top=0;left=0,width=screen.availWidth,height=screen.availHeight');";            //tt = tt + "qminoa.moveTo(0,0);";
            //tt = tt + "qminoa.resizeTo(screen.availWidth,screen.availHeight);";
            //tt = tt + "</script>;";
            string tt = "<script language=javascript>var qValue = window.showModalDialog('" +  url + "'"
                    + ",'','dialogWidth:' + screen.availWidth + ';DialogHeight=' + screen.availHeight + ';status:no;help:no;resizable:yes;dialogTop=0;dialogLeft=0;');";
            tt = tt + "</script>;";            page.RegisterStartupScript("message", tt);
                    }然后 所有页面  可以调用  
        我父窗体通过按钮弹出模式子窗体  我的父窗体刷新  因为 我继承了基类的
               我现在触发 子窗体 任何一个事件  都会报错  而且 子窗体是模式窗体 还会打开一个 新的窗体
                    我怀疑  是子窗体找不到父窗体   
                  我要是用window.open   就不会有这样的问题 
                        window.showModalDialog  就会出 这样的问题   不知道 有没有大哥 出现过这样的问题    

解决方案 »

  1.   

    子窗体的<head></head>内添加
      <base target="_self" />
      

  2.   

    报什么错? tt = tt + "</script>;";
    那个分号不需要了吧
      

  3.   

    那可能是子窗体掉父窗体的方法错了。window.showModalDialog和window.open方法打开的子窗体
    在调用父窗体上有所不同:例如, window.showModalDialog打开的子窗体中的调用:window.dialogArguments.document.getElementById('txtID').value;
    window.dialogArguments.location.href = window.dialogArguments.location.href;
    而window.open打开的子窗体中的调用:
    window.opener.document.getElementById('txtID').value;
    window.opener.location.reload();
    如果是在后台调用的脚本,出错之后可能会引发你所说的错误!
      

  4.   

    可以在js里面写方法,不容易出错
    button按钮的OnClientClick事件里调用js的open方法
    function open()
    {
      var returnValue = window.showModalDialog("");
      if(returnValue==1)
      {
         //
      }
    }