yiiGridView refresh

Общие вопросы по использованию фреймворка. Если не знаете как что-то сделать и это про Yii, вам сюда.
Ответить
Vladislav
Сообщения: 14
Зарегистрирован: 2013.10.20, 11:33

yiiGridView refresh

Сообщение Vladislav »

Есть CGridView виджет, в некоторых колонках значение определено через 'value' => function() { далее кнопки со стилями.}. Дак вот, когда в js вызываю update этого виджета, $.fn.yiiGridView.update("widjetId"); то слетают все стили кнопок внутри этого виджета и вообще весь js, который при рендеринге страницы работал, а после $.fn.yiiGridView.update("widjetId"); - нет.
Как обойти этот трабл?
Аватара пользователя
yiijeka
Сообщения: 3103
Зарегистрирован: 2012.01.28, 09:14
Откуда: Беларусь
Контактная информация:

Re: yiiGridView refresh

Сообщение yiijeka »

Всё должно работать. Тут дело не в fn, посмотрите в debug браузера, там должны быть js ошибки - они и не позволяют дальше выполняться правильно js.
Vladislav
Сообщения: 14
Зарегистрирован: 2013.10.20, 11:33

Re: yiiGridView refresh

Сообщение Vladislav »

yiijeka писал(а):Всё должно работать. Тут дело не в fn, посмотрите в debug браузера, там должны быть js ошибки - они и не позволяют дальше выполняться правильно js.
В дебаге все чисто, ошибок нет. Сейчас обьясню что происходит : виджете в одной колонке есть input который декорируется классом из twitter bootstrap ( spinner ), поведение которого потом ниже в <script> блоке описывается :

var spinner = $( ".spinner" ).spinner({
create: function( event, ui ) {
blabla
}
});

Видимо при апдейде gridView этот блок кода не учитывается
Nafania
Сообщения: 1227
Зарегистрирован: 2011.01.31, 13:12

Re: yiiGridView refresh

Сообщение Nafania »

Дело в том, что грид обновляется аяксом, а js у вас применен для текущих элементов, здесь и сейчас так сказать, без использования on.
Тут два варианта:
1) переписать js нормально, учитывая появление элементов.
2) не факт что сработает, но попробовать рендерить грид аяксом с использованием processOutput = true
UPD
забыл про третий вариант, обновлять грид не аяксом - это решит все проблемы.
xnokianx
Сообщения: 22
Зарегистрирован: 2013.11.13, 09:11

Re: yiiGridView refresh

Сообщение xnokianx »

В виджете после columns, пропишите 'afterAjaxUpdate'=>"скрипт перезагрузки js",
Vladislav
Сообщения: 14
Зарегистрирован: 2013.10.20, 11:33

Re: yiiGridView refresh

Сообщение Vladislav »

xnokianx писал(а):В виджете после columns, пропишите 'afterAjaxUpdate'=>"скрипт перезагрузки js",
Большое спасибо! Помогло, работает.
Ответить