Получение значения из события JavaScript RadWindow OnClientBeforeClose

Я вчера опубликовал очень похожий вопрос, но пока никто не ответил. Теперь я изменил функциональность и столкнулся со следующей проблемой. В этом сценарии у меня есть RadWindow, который я открываю из кода за файлом (страница ASPX) по нажатию кнопки. В этом окне Rad у меня есть скрытое поле, в котором я устанавливаю значение, и теперь событие OnClientBeforeClose. Я хочу получить значение из скрытого поля и присвоить его текстовому полю на моей странице.ASPX, которая является родительской страницей этого окна Rad. Может ли кто-нибудь, пожалуйста, дать мне любую идею, как это сделать. Я посмотрел не так много примеров Telerik и Stackru, но у меня ничего не получалось. Заранее спасибо.

Rad Window Diclaration на моей странице.Aspx.cs

    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);

Функция JavaScript на странице RadWindow.ASPX, где я устанавливаю значение для скрытого поля

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

JavaScript OnClientBeforeClose функция на моей родительской странице.ASPX (чтобы закрыть RadWindow), где я пытаюсь получить значение из скрытого поля и установить в TextBox родительской страницы

            function CommentsListPopUpRadWindowBeforeClose(oWnd, args) {
}

1 ответ

Решение

Вы можете легко передать аргументы RadWindowФункция закрытия с дочерней страницы:

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();
}
Другие вопросы по тегам