我正在使用 Yii,并且这里的 CGridView 具有 CCheckBoxColumn 作为定义的列的一部分。
this->widget('zii.widgets.grid.CGridView', array(
'dataProvider' => $dataProvider,
'filter' => $model,
'columns' => $columns
),
'selectableRows'=>2
));
将 selectableRows 设置为 2 也会使单击 gridview 内的行的任何部分“选中/取消选中”该行。这是一个有用的功能,这样用户就不再需要在复选框图标很小的情况下专门勾选它。
不幸的是,我需要限制复选框勾选仅在单击复选框图标/输入元素本身或至少它所在的列时切换,而不是在该行的任何其他列。看来这个功能还没有或不会,我正在寻找某种方式覆盖 Js 来实现这一点,但我不知道从哪里开始。谢谢。
最佳答案
在'columns'
中,您应该添加新数组作为第一个元素,如下所示:
array(
'class' => 'CCheckBoxColumn',
'id'=>'selectableColumn',
'selectableRows'=>2,
),
并从数组索引中删除'selectableRows'
。该数组是其中带有复选框的列的配置。因此,基本上,您应该添加到上面提到的 $columns
变量数组中。这是示例:
$this->widget('zii.widgets.grid.CGridView', array(
'dataProvider' => $dataProvider,
'filter' => $model,
'columns' => array( // <- this is your $columns variable!
array( // <- just add this array to your $columns var
'class' => 'CCheckBoxColumn',
'id'=>'selectableColumn',
'selectableRows'=>2,
),
'columnName1',
'columnName2',
...
),
));
关于javascript - 将 Yii CGridView 的可选行限制为复选框列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33494558/