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 实例,并且可以添加一些检查函数是否存在以避免错误:
看到这个关于有几个 RadWindowManagers 这可能是错误引用的原因:http://www.telerik.com/help/aspnet-ajax/window-troubleshooting-wrong-window-opened.html
这里有一堆调用函数前的检查可以避免错误:
if (wnd2.get_contentFrame && wnd2.get_contentFrame() &&
wnd2.get_contentFrame().contentWindow &&
wnd2.get_contentFrame().contentWindowrefreshGridNhiemVu) {
wnd2.get_contentFrame().contentWindow.refreshGridNhiemVu();
}
您可以使用 typeof 检查来扩展它,以确保变量在调用它之前是一个函数。
请帮帮我! 我有 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 实例,并且可以添加一些检查函数是否存在以避免错误:
看到这个关于有几个 RadWindowManagers 这可能是错误引用的原因:http://www.telerik.com/help/aspnet-ajax/window-troubleshooting-wrong-window-opened.html
这里有一堆调用函数前的检查可以避免错误:
if (wnd2.get_contentFrame && wnd2.get_contentFrame() && wnd2.get_contentFrame().contentWindow && wnd2.get_contentFrame().contentWindowrefreshGridNhiemVu) { wnd2.get_contentFrame().contentWindow.refreshGridNhiemVu(); }
您可以使用 typeof 检查来扩展它,以确保变量在调用它之前是一个函数。