弹出模态窗口,如果要传递参数的话,一般可以用URL传递,但是由于弹出模态窗口在提交的时候容易出现再次弹出该窗口的现象,于是用弹出一个静态的页面的方法,即把目标窗口放在框架内,这样在提交的时候就不会弹出新的窗口了.大家应该有这样的经历吧.
但是如果是这样的话怎么把参数传递过去呢?不要用session.
请大家解答一下.

解决方案 »

  1.   

    <script>
    function setReturnVal()
    {
       var winval=1;
       window.close();
       window.returnValue=winval;
    }
    </script>
    <input type=button value="确定" onclick="setReturnVal()"/>
      

  2.   

    在页面中使用js获得参数
    <SCRIPT language="javascript">
    function GetParams() {

    var sParams = "<%= Request.QueryString["params"] %>";
    return sParams;
    }
    </SCRIPT>
      

  3.   

    上面的代码用于模态窗口页面(假设模态窗口所在页面名为a.htm)下面的代码用于接收页面:
    function getValue()
    {
      var arr = showModalDialog(a.htm", "", "dialogWidth:18em; dialogHeight:17.5em; status:0;help:0");
      if (arr != null)
      {
        alert(arr);  //可以在这里执行你需要的操作!
      }
    }
      

  4.   

    弹出一个静态的页面中用js来加载
    http://www.aspxboy.com/private/upload/sf_200636192126.htmlhttp://www.aspxboy.com/private/upload/frame.html
    http://www.aspxboy.com/private/upload/childform.html
      

  5.   

    弹出页中...<head>
    ...
    <base target=_self>
    </head>
      

  6.   

    http://dev.csdn.net/develop/article/15/15113.shtm
      

  7.   

    用javascript的window对象.
    把第一个页做为父页,第二页做为子页,放几个隐藏控件.可以2个页面互传参数
    //父页传值去子页
    var obj = Form1;
    window.showModalDialog("a.htm?aaa=1+bbb=2+ccc=3", "obj");
    //子页往回传值
    var obj_father = window.dialogArguments
    obj_father.hid_txtBox1.text="11"