我在父页通过一个客户端的Button打开一个子页面。子页面是一个列表(gridview)页,第一列是模板列checkbox,第二列是ID,第三列是name。模式窗口(子页)选择完之后通过checkbox选择之后,我想点击这个服务端button将选中的行的第三列(name)的值返回给父页,并在父页的textbox 控件里显示出来。请问应该怎么做?

解决方案 »

  1.   

    你说的是模式窗口是showmodaldialog?
    如果是那么可以这样做:
    showModalDialog(url, para, style)有三个参数,第一个参数是你要打开的url,第三个参数是设置这个窗口的大小位置这些,第二个参数是你从父页面向showmodaldialog子窗口传递的参数,要实现你的需求这个参数就是关键,你可以把你父窗口的window对象传递过去“showModalDialog("childPage.aspx", window, style)”,然后在子页面的服务端button的 OnClientClick添加事件
    function abc(){
       var parentWindow = window.dialogArguments;//这个就是你父亲窗口传递的window对象
       var textbox = parentWindow.getElementById('textbox1'); //然后得到你父亲窗口的textbox
    //把你gridview选定的值赋值给textboxreturn false //return false就不会执行继续执行服务器端的代码。
    }
      

  2.   

    this.ClientScript.RegisterStartupScript(this.GetType(), "message", "<script language='javascript'>window.opener.document.all['接收值的控件名'].value='" + 要传输的值 + "';window.close()</script>"); 
      

  3.   

    子页面
    self.opener.document.getElementById("父页面要赋值的控件ID").value =“要传的值”
      

  4.   

    我选完之后,点击button然后模式窗口并不关闭,二十打开了另外一个新的窗口,地址和模式窗口相同。我把新窗口和模式窗口都关闭后,父页需要得到值的文本框的值是空白。。
      

  5.   

    a.html ---->父窗口<html><head><script type="text/javascript" >function showDialog(){       // 这里边的东西可以自己着情设置var param = "dialogWidth:400px;dialogHeight:300px;scroll:no;status:no;resizable:no";// 打开 b.html,并将当前 window做为参数传入弹出窗口中return window.showModalDialog("b.html", window, param);}</script><title></title></head><body><input type="button" value="弹出" onclick="showDialog()"/><input type="text" value="父窗口值" name="farValue" id="farValue" /></body> b.html ---->子窗口<html><head><script type="text/javascript" >function getParValues(){        // 接收父窗口传过的 window对象.var parWin= window.dialogArguments; parWin.document.getElementById("farValue").value = "子窗口改变的值"; } </script><title></title></head><body><input type="button" value="改变父窗口值"  onclick="getParValues()" /></body>