Задать вопрос

Почему в Yii не генерируется javascript код для CActiveForm при сортировке/пагинации CListView?

Имеется CListView, элементами которого являются формы CActiveForm.

CListView:
$this->widget('zii.widgets.CListView', array(
            'dataProvider' => $dataProvider,
            'itemView' => '_view',
            'afterAjaxUpdate' => 'someJsFunction'
        ));

_view.php:
$form = $this->beginWidget('CActiveForm', array(
        'action' => array('update', 'id' => $model->productID),
        'id' => 'product-form-' . $model->productID,
        'enableAjaxValidation' => true,
        'clientOptions' => array(
            'validateOnType' => true,
            'validateOnChange' => true,
            'validationDelay' => 500
        ),
    ));
..... 
$this->endWidget();


При загрузке первой страницы для каждой формы CActiveForm генерируется js код, позволяющий выполнять ajax запросы и сохранять данные формы. Но при пагинации/сортировке CListView, для новых подгруженных форм js код не генерируется, таким образом новые формы не сохраняются. Пагинация/сортировка выполняется тоже с помощью ajax.

Как правильно сделать, чтоб после пагинации/сортировки CListView для подгруженных форм генерировался js код?
  • Вопрос задан
  • 3121 просмотр
Подписаться 2 Оценить Комментировать
Решения вопроса 1
@Dialog
Нужно либо указать колбек в afterAjaxUpdate, где будут вешаться все бинды. Или использовать так называемый live биндинг jQuery.

Это происходит из-за того, что при пагинации отдается контент без js скриптов внутри, можно конечно пошаманить в эту сторону, но лично для меня путь с биндингом оказался намного проще.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы