2008-11-06 178 views
0

我有一个带有GridView的页面,它使用Javascript启动一个弹出窗口。用户然后选择一个项目,更新连接到GridView的数据并关闭弹出窗口。ASP.NET从另一个窗口刷新一个窗口

如何刷新第一个(即调用页面),以便可以刷新Gridview中显示的数据?

回答

1

试试这个弹出式窗口中:

<script> 
window.opener.location.reload() 
</script> 

这应该刷新打开的弹出页面

+1

这将导致以下内容: ------------------------ --- Microsoft Internet Explorer --------------------------- 无法重新发送信息而无法刷新页面。 单击重试再次发送信息, 或单击取消返回到您尝试查看的页面。 – 2008-11-06 21:38:40

0

如果你只需要触发调用页面上回发,这应该工作:

<script> 
window.parent.document.forms[0].submit(); 
</script> 

通过明确提交表单,可以避免在刷新调用页面时出现的警告。

如果你需要在回发期间在GridView上触发一个OnSelectedIndexChanged事件,那么事情有点烦琐,但你应该可以通过调用window.parent.document.__doPostBack()并使用合适的参数来完成。

0

这里是解决方案:

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 
0

这是否避免“页面无法刷新”消息

window.opener.location = window.opener.location; 

(抱歉,我本来只是留在TonyB的信息发表评论,但我不有足够的SO点,所以我不允许... :(