我有一个a.aspx页面,默认没有数据。当输入适当条件,点查询后得到datagrid帮定数据。datagrid有一个超级连接列,当点这个列时进入b.aspx详细页面,这条数据已经更新。当我点b.aspx页面的返回时回到a.aspx,这时如何让a.aspx里的datagird刷新?请指教。我在网上查了查,可以把datagrid放在iframe里,但具体应该怎么做呢?

解决方案 »

  1.   

    那要看你是用OPEN,还是用showModalDialog打开的子窗体咯。
    正解,如果你用的是showModalDialog,在父窗体SHOW子窗体的下一行加语句,例如:
    function callb()
    {
      window.showModalDialog("b.aspx");
      window.location.reload(true);
    }如果你是用的OPEN,在子窗体里这样做:
    <script>
    function calback()
    {
       opener.location.reload();
    }
    </script>
    <body onunload="callBack();">
      

  2.   

    那个字段是一个超级连接列,是在“url格式字符串”里写的b.aspx?id={0},我试了OPEN的方法,不行。我只想刷新datagird,如果刷新页面。以前所查出来的数据就没有了
      

  3.   

    你在1.aspx里面放一个刷新按钮,目的是刷新1.aspx,当然你可以设置其隐藏,当2.aspx关闭的时候调用下面的方法。public void RefreshSourceWindow(string ControlName)
    {
    string script="";
    script+= "<script language='javascript'>" ;
    script+="  opener.__doPostBack('" + ControlName + "','');";
    script+= "  this.close();" ;
    script+= "</script>";
    this.Page.RegisterStartupScript("RefreshSourceWindowAndCloseMe", script);
          
    }
    其中ControlName就是1.aspx里面的刷新按钮的ID
      

  4.   

    在IF(!ispostback){}
    外写绑定,每次刷新页面都重新绑定数据,绑定的条件你可以从子窗体用return value发过来。
      

  5.   

    同意楼上,你先把查询的条件传到子窗口,从子窗口返回后,再给传回来。主页面在page_load里if(!ispostback)