在网上找了一篇文章,《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,没效果 :(

解决方案 »

  1.   

    看上去很奇怪.debug的时候可以重现问题否?
      

  2.   


    window.opener.location.href=window.opener.location.href试试用这个刷新父窗口
      

  3.   

    服务器上没有VS,没进行debug;本机上又不会出现问题……今天对代码进行了检视,本机上不会出现任何问题;但是服务器上的代码是只要一刷新就全没了!……
      

  4.   

    发表于:2008-03-09 22:53:165楼 得分:0 
    是否禁用了ViewState? 没啊,如果禁用的话就不会出现一个有问题一个没问题了
      

  5.   

    不防参考:http://blog.csdn.net/insus/archive/2008/03/26/2221227.aspx