GridView, перестают работать скрипты после обновления

Общие вопросы по использованию фреймворка. Если не знаете как что-то сделать и это про Yii, вам сюда.
Ответить
Nicolai6120
Сообщения: 138
Зарегистрирован: 2014.08.13, 15:08

GridView, перестают работать скрипты после обновления

Сообщение Nicolai6120 » 2017.08.11, 16:08

Добрый день! После ajax update GridView отваливаются скрипты и css. К примеру, в фильтре повешен datepicker. Обновили грид - datepicker больше не работает. Есть afterAjaxUpdate, но я ж не смогу там подключить css и js файлы. Я оформил datepicker в виде виджета, но он не работает из-за этой проблемы вернее работает, но только для первой страницы грида, без фильтрации).

Аватара пользователя
Apache02
Сообщения: 47
Зарегистрирован: 2014.02.09, 01:14

Re: GridView, перестают работать скрипты после обновления

Сообщение Apache02 » 2017.08.14, 10:48

Для скриптов, если нужно повесить обработчик события, например "click", удобнее использовать "делегированные события":

Код: Выделить всё

// Вместо
$('.unique-selector').click(function (event) {
	//...
});

// использовать
$(document.body).on('click', '.unique-selector', function (event) {
	// ...
});
Наверное более правильно привязываться не к document.body а к контейнеру таблицы, но из-за того, что компонент на стороне клиента использует replaceWith к нему привязаться не получится. Можно конкретизировать селектор, включить в него id грида.

По поводу css я не понимаю проблемы. Если css правила были объявлены на странице заранее, то нет проблемы их использовать. При динамическом обновлении таблицы на странице меняется только контейнер таблицы со всем содержимым.

Ответить

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и 7 гостей