我有一个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
}
答案 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);