关闭模式对话框窗口后的ASP.NET刷新父页面

时间:2013-01-24 15:30:46

标签: asp.net vb.net

我有一个启动模态对话框窗口的ASP.NET页面:

Dim sURL As String = System.Configuration.ConfigurationManager.AppSettings("PAYORS_Path") & "PayorCopy.aspx"
    lnkCopy.Attributes.Add("onclick", "javascript:window.showModalDialog('" & sURL & "',null,'status:no;dialogWidth:375px;dialogHeight:550px;dialogHide:true;help:no;scroll:yes;center:yes');return false;")

用户可以在此模式窗口中创建新项目。当用户单击“关闭”按钮时,模式对话框窗口成功关闭,但创建的新项目不会显示在父页面上。当模态窗口关闭时,我希望刷新父页面以显示用户创建的新项目。目前:

Private Sub btnClose_Click(ByVal sender As Object, ByVal e As System.Web.UI.ImageClickEventArgs) Handles btnClose.Click
    Dim strjscript As String = "<script language='javascript'>self.close();</script>"
    LtClose.Text = strjscript
End Sub

我已尝试添加到此脚本:

window.opener.location.reload(true);

但是当我测试时,我收到一条错误,上面写着“无法获取属性'位置'的值:对象为null或未定义。”

非常感谢任何帮助!

2 个答案:

答案 0 :(得分:0)

那是因为没有'开启者':) 位置是窗口对象的方法,因此您甚至可以将其视为全局大多数情况。任何这些应该工作:

window.location.reload(true);

或:

location.reload(true);

编辑是的我只是注意到你放置脚本的位置..如果它位于模态内部的点击手柄中,那么真正有一个不同的 - 它毕竟是模态的!尝试在代码打开模式窗口后直接添加 - 脚本执行将被阻止,直到模态返回,所以你可以这样:

var shouldReloadPage = window.showModalDialog('" & sURL & "',null,'status:no;dialogWidth:375px;dialogHeight:550px;dialogHide:true;help:no;scroll:yes;center:yes');
if(shouldReloadPage){
window.location.reload(true);
}
return false;

这仍然在点击处理程序ofc中,只是在代码块中显示以便于阅读。

答案 1 :(得分:0)

不要使用旧的模态对话框窗口,而是尝试jQuery Dialog,因为它的行为就像一个模态,但会让你保持在同一个窗口中。因此,可以使用以下代码轻松刷新:

location.reload(true);

有关详细信息,请在此处查看this问题。

希望它有所帮助。