我可以从RadWindow的Close处理程序返回一个值吗?

时间:2015-11-06 09:02:04

标签: javascript asp.net web telerik radwindow

我有一个radwindow,它显示在一个对话框下面。如您所知,关闭此对话框后,将触发其关闭处理函数。在那里,我返回一个布尔值。 我的问题是我想直接从Close处理程序获取返回值,而不使用任何全局标记

请参阅下面的代码段以获取更多详细信息。

用于显示对话框的函数:

function showDialog() {
        var url = "ChildPage.aspx";
        var wnd = window.radopen(url, 'Child Dialog');
        wnd.set_modal(true);
        wnd.setSize(400, 120);
        wnd.set_minHeight(300);
        wnd.set_minWidth(100);
        wnd.set_destroyOnClose(true);
        wnd.set_keepInScreenBounds(true);
        wnd.set_overlay(false);
        wnd.set_visibleStatusbar(false);
        wnd.set_visibleTitlebar(true);
        wnd.add_close(closeChildDialogHandler); //closeChildDialogHandler is Close handler
        wnd.set_behaviors(Telerik.Web.UI.WindowBehaviors.Move + Telerik.Web.UI.WindowBehaviors.Close + Telerik.Web.UI.WindowBehaviors.Resize);
        wnd.show();
        wnd.center();
    }

及其关闭句柄功能。如您所见,我想在此处理程序中返回 true | false 值。

function closeChildDialogHandler(sender, args) {
        var flag = false;
        var objConfirmSQ = args.get_argument();
        if (objConfirmSQ != null && typeof objConfirmSQ['returnValue'] != "undefined") {
            console.log("objConfirmSQ['returnValue'] = " + objConfirmSQ['returnValue']);
            return true;
        }
        else {
            return false;
        }
    }

好的,有没有办法可以从处理程序中收到 true | false 这样的值:

function myFunction(){
  var myVar = closeChildDialogHandler(unknown_param, unknown_param) //Not sure about this
}

1 个答案:

答案 0 :(得分:0)

一个抽象的解决方案是:

  

回调机制是返回机制的一个很好的替代方法。


更具体的解决方案:
1)声明一个函数。

childCloseResponseListener = function(myBooleanValue) {
/*Your handling for the boolean value when it gets here*/
}
childCloseResponseListener.bind(this);

2)从对话框的关闭监听器

中访问它
childCloseResponseListener(true);

OR

childCloseResponseListener(false);