查询结果返回并刷新
我有一个a.aspx页面,默认没有数据。当输入适当条件,点查询后得到datagrid帮定数据。datagrid有一个超级连接列,当点这个列时进入b.aspx详细页面,这条数据已经更新。当我点b.aspx页面的返回时回到a.aspx,这时如何让a.aspx里的datagird刷新?请指教。我在网上查了查,可以把datagrid放在iframe里,但具体应该怎么做呢?
------解决方案--------------------地址拦传直
------解决方案--------------------那要看你是用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(); ">
------解决方案--------------------楼上正确.
------解决方案--------------------up
------解决方案--------------------你可以在返回时给datagird帮顶个查询语句加个没有的条件 不就不显示了吗
------解决方案--------------------你在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
------解决方案--------------------在IF(!ispostback){}
外写绑定,每次刷新页面都重新绑定数据,绑定的条件你可以从子窗体用return value发过来。
------解决方案--------------------同意楼上,你先把查询的条件传到子窗口,从子窗口返回后,再给传回来。主页面在page_load里if(!ispostback)