从RadWindow OnClientBeforeClose JavaScript事件中获取价值

时间:2013-01-11 15:14:37

标签: javascript asp.net telerik client-side radwindow

昨天我发布了一个非常类似的问题,但到目前为止还没有人回答。现在我已经改变了功能并坚持以下问题。在这种情况下,我有一个RadWindow,我在按钮单击时从代码隐藏文件(.aspx页面)打开。在这个rad窗口我有一个隐藏字段,我在其中设置值,现在OnClientBeforeClose事件我想从隐藏字段中获取值并将其分配到我的.ASPX页面上的文本框,该页面是此Rad窗口的父页面。可以请任何人给我任何想法如何做到这一点。我在Telerik和StackOverflow上看了很多例子,但对我来说没什么用。提前谢谢。

我的.Aspx.cs页面中的Rad Window Diclaration

    RadWindow window = new RadWindow();
    window.Title = "Comments Pick List";
    window.ID = "CommentsListPopUpRadWindow";
    window.NavigateUrl = "CommentsList.aspx";
    window.OnClientBeforeClose = "CommentsListPopUpRadWindowBeforeClose";
    window.Skin = "Metro";
    window.Behaviors = WindowBehaviors.Close;
    window.KeepInScreenBounds = true;
    window.VisibleStatusbar = false;
    window.Modal = true;
    window.Width = 750;
    window.MinHeight = 510;
    window.VisibleOnPageLoad = true;
    window.EnableViewState = false;
    RadWindowManager1.Windows.Add(window);

RadWindow .ASPX页面上的JavaScript函数,我将值设置为隐藏字段

function displayItem(id) {
    var selectedText = document.getElementById(id);
    document.getElementById('hiddenSelectedTextField').value = selectedText.innerText;
}

我的.ASPX父页面上的JavaScript OnClientBeforeClose函数(关闭RadWindow)我试图从隐藏字段获取值并在父页面的TextBox中设置

            function CommentsListPopUpRadWindowBeforeClose(oWnd, args) {
}

1 个答案:

答案 0 :(得分:1)

您可以从子页面轻松地将参数传递给RadWindow的Close函数:

function GetRadWindow() {
     if (window.radWindow) {
         return window.radWindow;
     }
     if (window.frameElement && window.frameElement.radWindow) {
         return window.frameElement.radWindow;
     }
     return null;
}
function ChildClose() {
     GetRadWindow().Close(document.getElementById('hiddenSelectedTextField').value);
}

然后通过指定其OnClose函数来检索父页面中的参数:

在aspx.cs文件中添加:

window.OnClientClose = "CommentsListPopUpRadWindow_OnClose";

并在aspx父页面中:

function CommentsListPopUpRadWindow_OnClose(radWindow, args) {
    var arg = args.get_argument();
}