疑问:子窗口向父窗口传值,导致父窗口的其他控件的内容被清空?
blsa 2008-03-06 11:21:46 在网上找了一篇文章,《Passing Values from Child Page to Parent Page》,也确实能传过去,我的使用方法如下:
在父窗口的Page_load中:
protected void Page_Load(object sender, EventArgs e)
{
if (Session["SelectedItems"] != null)
{
//此处获取Session中的值
}
}
父窗口中,点击按钮,打开子窗口,打开子窗口的方法是onsever的。(这个按钮在一个GridView的footerrow中,gridview嵌在一个updatepanel里……)
类似下面 window.open("NewWindow.aspx","MyWindow","height=450,width=300"); 但是是用了updatepanel的方法将脚本注册弹出窗口;
子窗口中,点击“插入值”按钮时,遍历子窗口上的多选框,构造一个对象放到session里
protected void Button1_Click(object sender, EventArgs e)
{
Session["SelectedItems"] = myValue;
}
子窗口中,关闭时刷新父窗口
<body onunload="PassValues()">
<script language="javascript" type="text/javascript">
function PassValues()
{
window.opener.document.forms(0).submit();
self.close();
}
</script>
使用还算基本正常,但是问题是:第一次从子窗口中获取值,没问题,第二次再获取时,父窗口中其他控件中过去已经填好的值就全部被清空了??
上述问题发生在winserver2003+IIS6上,问题重现概率百分之百。我自己的XP+IIS5,同样的代码,却只是偶尔间歇性的出现问题(10来次有一次)?比较了web.config,也没有什么区别?
请问各位老大,大概是哪里出错了?我尝试过去掉updatePanel,没效果 :(