Есть CGridView виджет, в некоторых колонках значение определено через 'value' => function() { далее кнопки со стилями.}. Дак вот, когда в js вызываю update этого виджета, $.fn.yiiGridView.update("widjetId"); то слетают все стили кнопок внутри этого виджета и вообще весь js, который при рендеринге страницы работал, а после $.fn.yiiGridView.update("widjetId"); - нет.
Как обойти этот трабл?
yiiGridView refresh
Re: yiiGridView refresh
Всё должно работать. Тут дело не в fn, посмотрите в debug браузера, там должны быть js ошибки - они и не позволяют дальше выполняться правильно js.
Re: yiiGridView refresh
В дебаге все чисто, ошибок нет. Сейчас обьясню что происходит : виджете в одной колонке есть input который декорируется классом из twitter bootstrap ( spinner ), поведение которого потом ниже в <script> блоке описывается :yiijeka писал(а):Всё должно работать. Тут дело не в fn, посмотрите в debug браузера, там должны быть js ошибки - они и не позволяют дальше выполняться правильно js.
var spinner = $( ".spinner" ).spinner({
create: function( event, ui ) {
blabla
}
});
Видимо при апдейде gridView этот блок кода не учитывается
Re: yiiGridView refresh
Дело в том, что грид обновляется аяксом, а js у вас применен для текущих элементов, здесь и сейчас так сказать, без использования on.
Тут два варианта:
1) переписать js нормально, учитывая появление элементов.
2) не факт что сработает, но попробовать рендерить грид аяксом с использованием processOutput = true
UPD
забыл про третий вариант, обновлять грид не аяксом - это решит все проблемы.
Тут два варианта:
1) переписать js нормально, учитывая появление элементов.
2) не факт что сработает, но попробовать рендерить грид аяксом с использованием processOutput = true
UPD
забыл про третий вариант, обновлять грид не аяксом - это решит все проблемы.
Re: yiiGridView refresh
В виджете после columns, пропишите 'afterAjaxUpdate'=>"скрипт перезагрузки js",
Re: yiiGridView refresh
Большое спасибо! Помогло, работает.xnokianx писал(а):В виджете после columns, пропишите 'afterAjaxUpdate'=>"скрипт перезагрузки js",