Как получить идентификатор элемента UpdatePanel (ов) в ASP.NET AJAX, для которого предназначен ответ? - PullRequest
1 голос
/ 09 ноября 2010

Я пытаюсь запустить некоторый код инициализации jQuery, когда новые элементы появляются в DOM в результате асинхронного запроса в UpdatePanel.Кажется, я не могу найти часть данных, которую я хочу, в аргументах endRequestHandler.

Кто-нибудь знает, где находятся искомые данные?

            function onEndRequest(sender, e) {
                // run some jQuery initialization code (e.g. .tabs()) 
               // here. but only on the affected updatepanel(s)
            }

            with (Sys.WebForms.PageRequestManager.getInstance()) {
                add_endRequest(onEndRequest);
            }

В качестве альтернативы, я мог бы запустить свой код инициализации поверх HTML в ответе (если это даже возможно).Есть идеи?

1 Ответ

1 голос
/ 10 февраля 2011

Вы можете использовать args.get_panelsUpdating(); в обработчике pageLoaded, чтобы получить коллекцию панелей обновления, содержимое которых было обновлено.

Sys.WebForms.PageRequestManager.getInstance().add_beginRequest(beginRequest);
Sys.WebForms.PageRequestManager.getInstance().add_pageLoaded(pageLoaded);

function pageLoaded(sender, args) {
   var updatedPanels = args.get_panelsUpdated();
   for (i=0; i < updatedPanels.length; i++) {            
       $(updatedPanels[i]).children('.tabContainer').tabs();
   }
}

Ссылки:

...