GridView, перестают работать скрипты после обновления
-
- Сообщения: 143
- Зарегистрирован: 2014.08.13, 15:08
GridView, перестают работать скрипты после обновления
Добрый день! После ajax update GridView отваливаются скрипты и css. К примеру, в фильтре повешен datepicker. Обновили грид - datepicker больше не работает. Есть afterAjaxUpdate, но я ж не смогу там подключить css и js файлы. Я оформил datepicker в виде виджета, но он не работает из-за этой проблемы вернее работает, но только для первой страницы грида, без фильтрации).
Re: GridView, перестают работать скрипты после обновления
Для скриптов, если нужно повесить обработчик события, например "click", удобнее использовать "делегированные события":
Наверное более правильно привязываться не к document.body а к контейнеру таблицы, но из-за того, что компонент на стороне клиента использует replaceWith к нему привязаться не получится. Можно конкретизировать селектор, включить в него id грида.
По поводу css я не понимаю проблемы. Если css правила были объявлены на странице заранее, то нет проблемы их использовать. При динамическом обновлении таблицы на странице меняется только контейнер таблицы со всем содержимым.
Код: Выделить всё
// Вместо
$('.unique-selector').click(function (event) {
//...
});
// использовать
$(document.body).on('click', '.unique-selector', function (event) {
// ...
});
По поводу css я не понимаю проблемы. Если css правила были объявлены на странице заранее, то нет проблемы их использовать. При динамическом обновлении таблицы на странице меняется только контейнер таблицы со всем содержимым.