我有一个带有GridView的页面,它使用Javascript启动一个弹出窗口。用户然后选择一个项目,更新连接到GridView的数据并关闭弹出窗口。ASP.NET从另一个窗口刷新一个窗口
如何刷新第一个(即调用页面),以便可以刷新Gridview中显示的数据?
我有一个带有GridView的页面,它使用Javascript启动一个弹出窗口。用户然后选择一个项目,更新连接到GridView的数据并关闭弹出窗口。ASP.NET从另一个窗口刷新一个窗口
如何刷新第一个(即调用页面),以便可以刷新Gridview中显示的数据?
试试这个弹出式窗口中:
<script>
window.opener.location.reload()
</script>
这应该刷新打开的弹出页面
如果你只需要触发调用页面上回发,这应该工作:
<script>
window.parent.document.forms[0].submit();
</script>
通过明确提交表单,可以避免在刷新调用页面时出现的警告。
如果你需要在回发期间在GridView上触发一个OnSelectedIndexChanged事件,那么事情有点烦琐,但你应该可以通过调用window.parent.document.__doPostBack()
并使用合适的参数来完成。
这里是解决方案:
Dim CloseScript As String = "<script language='javascript'>function closeWindow(){ window.opener.document.forms[0].submit();window.close();}closeWindow();</script>"
在.NET 2.0中,您必须将其添加到网页上面的Javascript登记:
'register with ClientScript
'The RegisterStartupScript method is also slightly different
'from ASP.NET 1.x
Dim s As Type = Me.[GetType]()
If Not ClientScript.IsClientScriptBlockRegistered(s, "CloseScript") Then
ClientScript.RegisterClientScriptBlock(s, "CloseScript", CloseScript)
End If
这是否避免“页面无法刷新”消息
window.opener.location = window.opener.location;
(抱歉,我本来只是留在TonyB的信息发表评论,但我不有足够的SO点,所以我不允许... :(
这将导致以下内容: ------------------------ --- Microsoft Internet Explorer --------------------------- 无法重新发送信息而无法刷新页面。 单击重试再次发送信息, 或单击取消返回到您尝试查看的页面。 – 2008-11-06 21:38:40