Создание Radwindow в коде позади и предотвращение обратной передачи при закрытии RadWindow - PullRequest
0 голосов
/ 14 марта 2020

Я могу создать radwindow на стороне сервера. Вот код, выполняемый при нажатии кнопки. Кнопка закрытия также создается в коде позади.

protected void OpenRW_Click(object sender, System.EventArgs e)
      {
        RadWindow window = new RadWindow();
        window.Modal = true;
        window.EnableViewState = false;
        window.VisibleOnPageLoad = true;
        window.Width = 300;
        window.Height = 300;

        window.VisibleOnPageLoad = true;
        window.Visible = true;
        window.DestroyOnClose = true;
        window.Behaviors = Telerik.Web.UI.WindowBehaviors.Move;

        window.ID = "Popup";

        //create close button here

        Button closebt = new Button();
        closebt.Visible = true;
        closebt.Text = "Close";

        closebt.OnClientClick = "$find(\" <%= Popup.ClientID %> \").close(); return false;";



        closebt.Style.Add("position", "absolute");
        closebt.Style.Add("bottom", "5px");
        closebt.Style.Add("right", "10px");


        window.ContentContainer.Controls.Add(closebt);
        RadWindowManager1.Controls.Add(window);

    }

Но по какой-то причине, когда она закрывается, она запускает ненужную обратную передачу. Я перепробовал множество вещей, включая установку для свойства viewonpageload значения false и использование scriptmanager для отображения окна, но это дает те же результаты. Буду очень признателен за любые идеи о том, как я могу избавиться от этого ненужного постбэка. заранее спасибо.

1 Ответ

0 голосов
/ 20 марта 2020

Проблема была с DNN (dotnetnuke) переназначения клиентов. Клиентский код отображался по-другому, поэтому js не распознавал клиентский код, который был предварительно загружен в обратную передачу, которая вызвала исключение в браузере и, таким образом, вызвала дополнительную обратную передачу при закрытии окна. Моя работа заключалась в том, чтобы использовать jquery, чтобы скрыть div окна, используя класс окна в качестве идентификатора, а затем удалить модальное наложение.

 closebt.OnClientClick += "$('.<yourwindowclass>').hide();$telerik.$(\".TelerikModalOverlay\").remove(); return false;";

Я также взаимодействовал с командой telerik в этом вопрос. Я должен добавить, что их поддержка очень хорошая.

https://www.telerik.com/forums/creating-radwindow-on-server-side#FAxVzO4lYkC7jHDx21chOw

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...