如何在Yi2 gridview中获取列标题的每个单元格中的复选框?
我是yii2新手,在我的项目中使用yii2 gridview。。是否可以在列标题附近的每列中都有复选框?? 这是代码如何在Yi2 gridview中获取列标题的每个单元格中的复选框?,gridview,yii2,Gridview,Yii2,我是yii2新手,在我的项目中使用yii2 gridview。。是否可以在列标题附近的每列中都有复选框?? 这是代码 <?php $gridColumns = [ ['class' => 'yii\grid\SerialColumn'], ['class' => 'yii\grid\CheckboxColumn'], 'name', //
<?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,
]);
?>
最好的方法是创建自己的dataColumn类,并使用复选框设置标题的默认值
<?php
class myDataColumn extends yii\grid\DataColumn {
public $header = "somehtml";
}
?>
然后在gridview中,使用自定义dataColumn的名称设置属性dataColumnClass
。请注意,只有那些未定义类的属性才会使用您的类。(例如,ActionColumn将不显示自定义标题)
如果您需要的不仅仅是一个简单的固定html,您可以重写方法renderHeaderCellContent
,甚至与列的标签连接
请参见最好的方法是创建自己的dataColumn类,并使用复选框设置标题的默认值
<?php
class myDataColumn extends yii\grid\DataColumn {
public $header = "somehtml";
}
?>
然后在gridview中,使用自定义dataColumn的名称设置属性dataColumnClass
。请注意,只有那些未定义类的属性才会使用您的类。(例如,ActionColumn将不显示自定义标题)
如果您需要的不仅仅是一个简单的固定html,您可以重写方法renderHeaderCellContent
,甚至与列的标签连接
请参见这是您的解决方案
<?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,
]);
?>
这是您的解决方案
<?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,
]);
?>