使用GridView实现数据全选及批量删除按钮 [ 2.0 版本 ]
先来看实现的效果
关键代码如下:
<?= 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提交到想要的controller
aqiang
注册时间:2011-03-07
最后登录:2021-02-25
在线时长:56小时28分
最后登录:2021-02-25
在线时长:56小时28分
- 粉丝9
- 金钱11045
- 威望20
- 积分11805
共 3 条评论
没想到这么简单,洋文不好真吃亏
简单又实用,API多看看就行了
@aqiang 如果想用ajax调用 ajax展示该怎么写
@逗你玩 可以参考一下
<?php $script = <<< js $(".btn-delete").on("click", function(){ var ids = $("#grid").yiiGridView("getSelectedRows"); var self = $(this); if(ids.length == 0) return false; $.ajax({ url:self.attr("url"), type:"post", data:{id:ids}, success:function(res){ } }); }); js; $this->registerJs($script);
大神 能有这个完整的代码吗 求共享