如题:父页面中用window.showModalDialog()方法弹出子页面,子页面的内容是GridView,内容比较多,有翻页和搜索功能.点击gridview的某一行,返回值并关闭弹出的对话框(方法就是网上找的用OnRowDataBound事件之后注册e.Row.Attributes.Add("onclick", "returnvalue('" + str + "')");).刚开始时,把子页面中的所有内容都放在updatepanel,运行挺好,就是太太太太慢.所以就去掉了updatepanel,问题来了,一点"下一页"或"搜索"就把子页面以新窗口的形式打开,之后在弹出的"网页对话框"中的"下一页"或"搜索"操作都在那个新窗口中被执行了.这是什么问题,请大家帮我看一下.

解决方案 »

  1.   

    在子页面的head里加上:
    <base target="_self" />
      

  2.   

    WEB 版本的我不懂!
    CS 版本的 我就设置一个全局变量放在独立的CS文件中。在子窗口操作中复制,关闭子窗口,在父窗口中调用定义的全局变量。
    PS:记得用完之后,恢复初始值啊。还得留给其他的代码中使用呢。以上建议你可以参考一下思路的。
      

  3.   

    你的是IE几?
    貌似IE7对<base target="_self" />的位置有讲究
    有说放在第一个的,也有说放在中间的,你试试
      

  4.   

    自己解决了,用了比较笨的办法.让子页面在iframe中显示,父页面再调用window.showModalDialog()弹出iframe页.使用了框架能解决弹出的页面GridView.aspx无法传值和缓存的问题了.还是谢谢各位.