Событие javascript автоматического обновления веб-части SharePoint?
Справочная информация: я изменяю веб-часть списка SharePoint с помощью JSLink. Я также добавляю jQuery и jQuery-UI, чтобы элементы списка отображались как jQuery Accordion. Это работает хорошо, за исключением того, что мне также нужно реализовать автоматическое обновление ajax в веб-части, чтобы обновлять содержимое каждые 60 секунд.
Проблема: при обновлении веб-части код jquery возвращается - элементы больше не отображаются в режиме аккордеона. Я могу открыть консоль браузера и ввести код jquery вручную, например, $(".selector").accordion();
и работает нормально. Это заставляет меня думать, что мне нужно найти способ вызывать код jquery после завершения автоматического обновления каждой веб-части.
Вопрос: Итак, есть ли событие javascript или способ узнать, когда на моей веб-части запускается автоматическое обновление, чтобы я мог снова вызвать мой jquery аккордеон? Есть ли что-то еще, что я мог упустить?
Спасибо за ваше время!
2 ответа
Ответ должен был использовать этот код:
Sys.WebForms.PageRequestManager.getInstance().add_endRequest(MyFunction);
MyFunction() {
//do something here;
}
Кредит @Thriggle
Ссылки: https://msdn.microsoft.com/en-us/library/bb311028.aspx https://www.daniweb.com/programming/web-development/threads/247263/ajax-postback-after-endrequest
Я считаю, что вы можете вставить свой собственный код или вызовы функций в цепочку обратных вызовов, переопределив _onFormSubmit
метод текущего экземпляра Sys.WebForms.PageRequestManager
объект.
Sys.WebForms.PageRequestManager.getInstance()._onFormSubmit = function(i){
Sys.WebForms.PageRequestManager.prototype._onFormSubmit.call(this,i);
alert("Refreshing the data..."); // -- your code or function call here
};
Когда я запустил приведенный выше код в консоли F12 на странице с представлением в виде списка с 25-секундным обновлением, я начал видеть всплывающее окно "Обновление данных..." каждые 25 секунд, но я не проверил что-нибудь более сложное, чем это.