我是yii2的新手,在我的项目中使用yii2 gridview ..是否可以在列标题附近的每列中设置复选框? 这是代码
<?php
$gridColumns = [
['class' => 'yii\grid\SerialColumn'],
['class' => 'yii\grid\CheckboxColumn'],
'name', //checkbox then 'name'
'company_mail', //checkbox then 'company_mail' for each column
'no_employees',
'email:email',
.
.
.];
echo GridView::widget([
'dataProvider' => $dataProvider,
'filterModel' => $searchModel,
'columns' => $gridColumns,
]);
?>
答案 0 :(得分:0)
最好的方法是创建自己的dataColumn类,并使用复选框设置标题的默认值。
<?php
class myDataColumn extends yii\grid\DataColumn {
public $header = "somehtml";
}
?>
然后在gridview中设置属性dataColumnClass
,其中包含自定义dataColumn的名称。请注意,只有那些没有定义class
属性的属性才会使用您的类。 (例如,ActionColumn不会显示您的自定义标题)
如果您需要的不仅仅是一个简单的固定html,您可以覆盖方法renderHeaderCellContent
,甚至可以与列的标签连接。
答案 1 :(得分:0)
这是您的解决方案。
<?php
$gridColumns = [
['class' => 'yii\grid\SerialColumn'],
['class' => 'yii\grid\CheckboxColumn'],
[
'header' => '<input type="checkbox"> Name',
'attribute' => 'name',
],
[
'header' => '<input type="checkbox"> Company Email',
'attribute' => 'company_mail',
],
'no_employees',
'email:email',
];
echo GridView::widget([
'dataProvider' => $dataProvider,
'filterModel' => $searchModel,
'columns' => $gridColumns,
]);
?>
如果你想在列的所有行上复选框,那么你的代码应该是
<?php
$gridColumns = [
['class' => 'yii\grid\SerialColumn'],
['class' => 'yii\grid\CheckboxColumn'],
[
'header' => '<input type="checkbox"> Name',
'attribute' => 'name',
],
[
'header' => '<input type="checkbox"> Company Email',
'attribute' => 'company_mail',
'value' => function ($model) {
return '<input type="checkbox" name="YOURCHECKBOXNAME"> '.$model->company_mail;
},
], // this will generate checkbox at header as well as each rows of this column
'no_employees',
'email:email',
];
echo GridView::widget([
'dataProvider' => $dataProvider,
'filterModel' => $searchModel,
'columns' => $gridColumns,
]);
?>