asp.net从弹出的模式窗体 向调用窗体中的控件返值有a.aspx,b.aspx,c.aspx等一些窗体,每个里都有texbox1,textbox2。
它们调用一个公共的选择货品窗体Prdt.aspx。在prdt.aspx中有两个文本框txtPrdno,txtPrdName,两个按钮btnOk,btnClose。
如何实际按btnOk后,把prdt.aspx中txtPrdno,txtPrdName值,写到调用者的textbox1和textbox2上,随后关了Prdt.aspx。我现在只能用模式的方法弹出货品选择窗口的,但不知如何往回写值。在网上找到的window.opener ,window.parent 等方法,都没试成功。现求前后台完整代码(本人是菜鸟级,如果指给出一句两句的话,我也不知改放到那个地方才,对如何调用才好,大家莫要见怪):一人调用窗体的一个弹出窗体的。

解决方案 »

  1.   

    没事窗口没有window.opener ,window.parent 的
      

  2.   

    正确的方法
    window.dialogArgumentswindow.returnValue
    http://dotnet.aspx.cc/article/00000000-0000-0000-0000-00000000000f/read.aspxhttp://blog.csdn.net/net_lover/archive/2002/09/24/6910.aspx
      

  3.   

    在a.aspx的html代码的head,body间定义的函数<script language="JavaScript">
    function new_page1(pagename)

       //原先是这么写的
       //window.showModalDialog(pagename,
    window,'dialogWidth:400px;dialogHeight:590px;help:no');
       
       //现在改成这么写了
       var a = window.showModalDialog(pagename)
       for(i=0;i<a.length;i++) 
       {  alert(a[i]); //可以测试到有返回值
       }
       
       //不知怎样才能把这个javascript函数中的变量,赋值给asp.net的服务器控件??求助。}
    </script>body中
    <a href="javascript:new_page1('Prdt.aspx')">条件查询(弹出Prdt.aspx,a.aspx不可动,鼠标移到他上面是忙的状态。)</a><br>Prdt.aspx中代码,也是在html中
    <script language="javascript" type="text/javascript">
    function reset_term()
    {
       //不知在Prdt.html或prdt.aspx.cs中,能否就可以给a.aspx上的textbox1给写上值 ??   //alert(window.opener.srcElement.tagName);
        
        var a=new Array("a","b")    
        window.returnValue = a
        window.close()
    }
    </script>确定按钮的html代码
    <input onclick="javascript:reset_term()" type="button" value="确定" id="Button1" />---------------------------
    以上代码都是抄的,现在还不会灵活运用,求帮助修改。
      

  4.   

    或者直接弹出页面 选择值存入session也是个办法 就是有点儿慢弹出页面效果
      

  5.   

    //现在改成这么写了
      var a = window.showModalDialog(pagename)
      for(i=0;i<a.length;i++)  
      { alert(a[i]); //可以测试到有返回值
        
    //不知怎样才能把这个javascript函数中的变量,赋值给asp.net的服务器控件??求助。
    //这么写就可以了
    document.getElementById("textbox1").value=a[i];
      }
        
      
      

  6.   

    //为了能设弹出窗口的样式,我这么写了,不知 下面的a和window是什么关系,这个windows在这里都能做什么?   var a = window.showModalDialog(pagename,window,'dialogWidth:200px;dialogHeight:590px;help:no')
      

  7.   

    在网上找到的window.opener ,window.parent 等方法,都没试成功。
    -----------------------------------
    这个用法是针对window.open()弹窗或者嵌套iframe
    var a = window.showModalDialog(pagename, this.window)
    可以使用window.dislogArguments获取父窗口的DOM对象
    http://blog.csdn.net/abaloneking/archive/2006/09/21/1261172.aspx