PHP Yii1.1中如何让CGridView的指定列整列显示复选框
解决方案
你可以直接用Yii 1.x内置的CCheckBoxColumn类实现复选框列,无需手动配置value参数,框架会自动生成每行的复选框,还自带原生的全选/多选逻辑,比自定义实现更稳定。
将你当前配置为空value的列替换为以下代码即可:
array( 'class' => 'CCheckBoxColumn', 'id' => 'selectServices', // 配置可选行数:2=支持多选+全选,1=仅单选,0=禁止选择 'selectableRows' => 2, 'headerHtmlOptions' => array( 'class' => 'checkbox-column' ), 'checkBoxHtmlOptions' => array( // 自定义复选框name属性,表单提交时可直接获取选中的服务ID数组 'name' => 'serviceIds[]', ), // 保留你自定义的表头全选框,不需要自定义的话可以删除该参数,框架会自动生成标准全选框 'header' => '<input id="services_all" type="checkbox" title="选择多个服务进行删除" data-toggle="tooltip"/>', ),
如果你确实需要手动配置value参数实现自定义效果,可以填返回复选框HTML的表达式:
'value' => 'CHtml::checkBox("serviceIds[]", false, array("value"=>$data->idservice))',
参数说明:
- 第二个参数
false为默认未选中状态,可根据业务逻辑替换为判断条件实现默认选中 $data->idservice对应每行服务数据的主键ID,表单提交后可通过$_POST['serviceIds']获取所有选中的服务ID
内容的提问来源于stack exchange,提问作者Malgosh
相关产品推荐
相关产品推荐

