先来看看实现的效果
关键代码
<?= GridView::widget([
'dataProvider' => $dataProvider,
'showFooter' => true, //设置显示最下面的footer
'id' => 'grid',
'columns' => [
[
'class'=>CheckboxColumn::className(),
'name'=>'id', //设置每行数据的复选框属性
'headerOptions' => ['width'=>'30'],
'footer' => '<button href="#" class="btn btn-default btn-xs btn-delete" url="'. Url::toRoute('admin/delete') .'">删除</button>',
'footerOptions' => ['colspan' => 5], //设置删除按钮垮列显示;
],
['attribute' => 'id', 'footerOptions' => ['class'=>'hide']], //其他列每个都要增加footerOptions项,设置class为hide,达到隐藏单元格的目的;
['attribute' => 'username', 'footerOptions' => ['class'=>'hide']],
[
'attribute' => 'status',
'value' => function($model){
if ($model->status == Admin::STATUS_ACTIVE){
return '启用';
}
return '禁用';
},
'footerOptions' => ['class'=>'hide']
],
['class' => 'yii\grid\ActionColumn', 'header' => '管理操作', 'footerOptions' => ['class'=>'hide']],
],
'layout' => "{items}\n{pager}"
]); ?>
获取选择的数据
var ids = $("#grid").yiiGridView("getSelectedRows");
最后我们就可以ajax提交到相应的控制器。