Обновление вложенного пользовательского элемента управления после указания по закрытию всплывающего окна

#asp.net #telerik #radgrid

#asp.net #telerik #radgrid

Вопрос:

Я использую элемент управления telerik radgrid со следующей компоновкой: макет страницы

Мне любопытно, может ли кто-нибудь дать общие рекомендации по тому, какой подход я должен предпринять, чтобы надежно обновить пользовательский элемент управления, который инициировал действие всплывающего окна?

Ответ №1:

В событии RadWindow OnClientClose вы можете написать код javascript для перезагрузки пользовательского элемента управления, который инициировал действие.

Некоторое время назад у меня было несколько похожее требование, когда мне нужно было повторно привязать сетку после закрытия RadWindow и я использовал функцию onclientclose RefreshGrid() { var MasterTable = $find(«<%= ИМЯ_ГРИДА_КЛИЕНТА %>»).get_masterTableView(); MasterTable.rebind(); }

В любом случае, я предлагаю вам заглянуть в javascript api о том, как обновить пользовательский элемент управления (зависит от того, что вы хотите обновить в пользовательском элементе управления).

Комментарии:

1. Спасибо, Кен, у меня уже есть это окно захвата javascript при событии закрытия, но я хочу обновить только открытую строку, но не всю сетку, если я повторно свяжу сетку, сетка потеряет все открытые строки / вкладки…

2. Вам не нужно повторно привязывать всю сетку. Я привел вам только пример. вам нужно посмотреть на API Javascript, чтобы либо обновить radTabControl (в шаблоне строки radgrid), либо если у вас есть какой-либо конкретный telerik / regular asp.net элемент управления, который вам нужно обновить внутри вашего элемента управления radtab pageview.

3. Вы открывали запрос в службу поддержки Telerik. Их поддержка потрясающая и обычно они отвечают в течение рабочего дня. Отказ от ответственности: я не работаю на telerik. лол

4. Нет, я еще не открывал заявку.

Ответ №2:

Итак, вот как я решил проблему: я создал «скрытую» кнопку на пользовательском элементе управления каждой вкладки, которую необходимо обновить, и передал идентификатор клиента кнопки при открытии всплывающего окна. идентификатор клиента этой кнопки сохраняется как переменная java script, и когда пользователь закрывает модальное окно rad, я выполняю код, имитирующий нажатие скрытой кнопки:

 $find(myStoredButtonClientIdJSVariable).click();
  

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

Комментарии:

1. Это выглядит многообещающе, но я не знаю, как я должен получить идентификатор кнопки. Прямо сейчас я делаю это: MyWindow.add_close(onWindowClose), а затем в функции onWindowClosed() Я бы сделал этот щелчок. Однако я не могу понять, как передать buttonId этой функции! Если я попытаюсь сделать что-то вроде MyWindow.add_close(onWindowClose(buttonId)), функция просто вызывается сразу, а не при закрытии.