CGridView и checkbox
CGridView и checkbox
Можно сделать чтобы при клику по чекбоксу в гриде, автоматический выполнился экшен? Мне нужно выбранную сущность сохранить в другую таблицу. Такое возможно реализовать, с помощью аякса?
Re: CGridView и checkbox
Я сделал так (лишние поля поскипал для краткости)
Соответственно при клике вызывается (при $model->id = 4 и выбранном чекбоксе) /admin/page/active/id/4/e/1
в экшен приходят параметры $id=4, $e=1
Cкорее всего можно и не через get сделать а через post. но мне и так нормально.
Код: Выделить всё
<?php $this->widget('zii.widgets.grid.CGridView', array(
'id'=>'page-grid',
'columns'=>array(
...,
array(
'name' => 'active',
'class' => 'CCheckBoxColumn',
'checked'=>'$data->active',
'value'=>'$data->id',
'header'=>'Вкл.',
'checkBoxHtmlOptions'=>array('onclick'=>'$.get(\'/admin/page/active/id/\'+this.value+\'/e/\'+(this.checked?1:0),\'\',function(data){} );'),
),
),
)); ?>
в экшен приходят параметры $id=4, $e=1
Cкорее всего можно и не через get сделать а через post. но мне и так нормально.
Re: CGridView и checkbox
В вашем примере когда выбираешь одну строку, у второй чекбокс сбрасывается. Можно это как-то убрать?
Re: CGridView и checkbox
Может пригодится:
у грида есть свойство selectionChanged, может на него повесить событие?
Тогда при клике на строке будет вызываться Ваш перенос.
Но это так, на всякий случай, вдруг поможет.
у грида есть свойство selectionChanged, может на него повесить событие?
Код: Выделить всё
................
'dataProvider'=>$model->search(),
'filter'=>$model,
'template'=>'{items}{pager}',
'selectionChanged'=>'js:function(id){ alert("Row = " + id + " key = " + $.fn.yiiGridView.getSelection(id)) }'
................
Но это так, на всякий случай, вдруг поможет.
Re: CGridView и checkbox
Код: Выделить всё
<?php $this->widget('zii.widgets.grid.CGridView', array(
'id'=>'page-grid',
'selectableRows'=>0,
минус такого подхода в том что нельзя делать групповые операции, но меня это устраивает