日期:2014-05-18  浏览次数:20530 次

如何让弹出的子窗口传递值给父窗口
我在a.aspx里面定义了一个textbox和一个button,
<asp:textbox id="txtOwner" runat="server" CssClass="inputcss" Width="223px" Height="21"></asp:textbox>
<span style="COLOR: red">&nbsp;[</span>
<A onclick="javascript:window.showModalDialog('SelClient.aspx',window,'status:no;scroll=no;resizable:no;dialogLeft:300;dialogtop:200;help:no;dialogwidth:420px;dialogheight:300px')" href="#">点击选择</A>
<span class="red" style="COLOR: red">]</span>


在'SelClient.aspx'定义了一个grid和一个SubmitBtn的button,我要将grid的选中的一个值是string在按钮点中后传递到a.aspx的txtOwner中去,并关闭当前窗口,点击后txtOwner的值没有效果

private void SubmitBtn_Click(object sender, System.EventArgs e)
{
foreach(DataGridItem dgItem in this.ClientList.Items)
{
RadioButton cBox = (RadioButton)dgItem.FindControl("rbSelect");
if(cBox != null)
{
if(cBox.Checked == true)
{
Label lb=(Label)dgItem.FindControl("name");
Response.Write("<script>window.dialogArguments.document.all.txtOwner.value=lb.Text </script>");
Response.Write("<script>window.opener=null;window.close();</script>");
}
}
}
}


问题出在什么地方,请指教


------解决方案--------------------
C# code

Response.Write(" <script> window.opener.document.all.txtOwner.value=lb.Text   </script> ");

------解决方案--------------------
建议用ShowModelDialog
------解决方案--------------------
javascript弹出ShowModelDialog
function loadOrderFormRemark()
{
var remarkStr = window.showModalDialog('','','dialogWidth:700px;dialogHeight:300px;status:no;scroll:no');
}

在ShowModelDialog弹出的页面后台
Response.Write("<script language=javascript>window.returnValue='" + remarkStr + "';</script>");
Response.Write("<script>self.close()</script>");
remarkStr为要传回去的值

通过这个来关闭ShowModelDialog
我的项目里都是这样做的