<script type="text/javascript" language="javascript">
Sys.WebForms.PageRequestManager.getInstance().add_pageLoaded(pageLoadedHandler);
function pageLoadedHandler(sender, args) {
var updated_panels = args.get_panelsUpdated();
}
</script>
Как правильно вызвать JavaScript после обновления UpdatePanel
У меня возникло несколько вопросов:
1. Для запуска JavaScripta я решил использовать события PageRequestManager-а - какое событие для этого лучше использовать pageLoaded или endRequest? (как я заметил endRequest - почему-то иногда не срабатывает... )
2. Как узнать какая именно UpdatePanel - обновилась? (в событие передается sender типа object, но как на клиенте из JavaScript-овского объекта
узнать какая панель обновилась не знаю...)
3. Как узнать на клиенте - загружается ли контент первый раз или он подгружен асинхронным пост баком...?
1. pageLoaded
2. Можно получить список обновленных панелей:
Код:
updated_panels - фактически будет массивом div-ов с ИД шниками UpdatePanele-ов
3. При первой загрузке страницы панели создаются, при постбаках некоторые обновляются, так что:
при первой загрузке: args.get_panelsCreated() вернет все панеи, args.get_panelsUpdated() - вернет пустой массив
при пост баке: args.get_panelsUpdated() - все обновленные, args.get_panelsCreated() -
пустой массив...