telerik - 如何在 child 2 window 关闭后刷新 child 1 window

telerik - how to refresh child 1 window after child 2 window close

请帮帮我! 我有 1 个 apsx 页面和 2 个 uc。 从 aspx 可以打开包含 uc 1 的 radwindow,从 uc 1 可以打开 uc 2。在 aspx 中,我有:

function CloseRadWindow()
    {
        if(GetRadWindowManager().getActiveWindow() == null)
        {
            refreshGridGiaoDuToan(); //this one refresh aspx page from uc 1
        }
        else
        {
//i hope this one fresh uc1 after close uc2 but error
            var wnd2 = GetRadWindowManager().getWindowByName("wndPopup2");
            console.log(wnd2);
            wnd2.get_contentFrame().contentWindow.refreshGridNhiemVu();
        }

    }

    function refreshGridGiaoDuToan() {
        $find("<%= pnGiaoNganSach.ClientID %>").ajaxRequest("SoGiao");
    } 

在 uc 1 我有

   function refreshGridNhiemVu() {
    alert("va");
    $find("<%= pnGiaoNganSachChiTiet.ClientID %>").ajaxRequest("RefreshNhiemVu");
}

但是当我关闭 uc 2 时,总是出现错误:get_contentFrame()。contentWindow.refreshGridNhiemVu 不是函数...

所以我的问题是如何在关闭 uc2 后刷新(在代码隐藏中调用函数)uc 1? 请帮我!谢谢!

一般来说,这种做法是正确的。您必须确保引用了正确的 RadWindow 实例,并且可以添加一些检查函数是否存在以避免错误:

您可以使用 typeof 检查来扩展它,以确保变量在调用它之前是一个函数。