利用yii2 gridview实现批量删除案例[转]

今天仍然继续探讨GridView的问题,昨天有个小伙伴留言说你用gridview给我去掉表头的链接?我想啊想,这用gridview确实不容易实现,至少我没想出来,会的下方可留言。但是呢,这根gridview有个毛线关联啊,明明是要设置ActiveDataProvider,你要我怎么用gridview实现嘛。

这个问题也是很简单的,我们来看看具体实现

$dataProvider = new ActiveDataProvider([
    "query" => $query,
]);
$dataProvider->setSort(false);

分分钟搞定不是事。

好了,我们来谈谈主题:如何利用yii2 gridview实现批量删除?

我先说一下几个步骤啊,免得直接贴代码有的小伙伴删了一句去了一句最后失败了!

1、gridview设置options时增加一个id 这里我们命名grid

"options" => [
    // ...其他设置项
    "id" => "grid"
],

2、columns增加选项复选框,批量删除必然不可少了复选框操作,这里我们的name值设定为id,方便对数据操作

[
    "class" => "yii\grid\CheckboxColumn",
    "name" => "id",
],

3、页面上我们增加一个批量删除按钮,注意这里我们增加了一个class gridview,方便后面js实现点击效果

<?= Html::a("批量删除", "javascript:void(0);", ["class" => "btn btn-success gridview"]) ?>

4、最后一步,写js实现按钮操作,打开你的console看看,我们很轻松的就拿到了选中的行的id,然后这里就可以异步操作数据了。

<?php
$this->registerJs(‘
$(".gridview").on("click", function () {
//注意这里的$("#grid"),要跟我们第一步设定的options id一致
    var keys = $("#grid").yiiGridView("getSelectedRows");
    console.log(keys);
});
‘);
?>

下面贴上完整代码

GridView::widget([
        // ......
        "options" => ["class" => "grid-view","style"=>"overflow:auto", "id" => "grid"],
        // ......
        "columns" => [
            // ......
            [
                "class" => "yii\grid\CheckboxColumn",
                "name" => "id",
            ],
            // ......
        ],
]);
$this->registerJs(‘
$(document).on(‘click‘, ‘.gridview‘, function () {
    var keys = $("#grid").yiiGridView("getSelectedRows");
    console.log(keys);
});
‘);
时间: 2024-11-25 07:49:19

利用yii2 gridview实现批量删除案例[转]的相关文章

yii2的gridview批量删除

gridview区 <?= GridView::widget([ 'options' => [ 'class' => 'grid-view', 'style'=>'overflow:auto', 'id' => 'grid', ], 'dataProvider' => $dataProvider, 'showFooter' => true,//显示footer行 //'filterModel' => $searchModel, 'layout'=> '

YII2 Gridview 批量删除

1. 给GridView取个ID <?= GridView::widget([ 'dataProvider' => $dataProvider, 'options' => ['id' => 'grid', 'class' => 'grid-view table-scrollable'], .... 2.GridView的第一列: [ 'class' => 'yii\grid\CheckboxColumn', 'name' => 'id', ], 3.添加一个批量删

案例:批量删除

一点知识: 1.php访问数据库,增删改查数据库,在页面显示出结果=数据库的结果 2.<radio><checkbox><option>标签,name="xx[]",表示选中多少提交多少,以数组形式提交,就得以数组形式获取. value值是自己定义的,不同<text>的value. 通过name提交获取到的是value值. 批量删除: 点击按钮实现批量删除,需要一个form表单,需要一个批量处理页面(也可以放同一页面,但是还需加代码,实现

批量删除本地指定扩展名文件工具

VC工具在编译时,会生成大量临时文件,占用很多空间,项目多了,手动删除就会很费力,所以我做了个小工具,可以批量删除指定目录,指定扩展名的文件. 此工具根据配置文件指定的扩展名删除文件,一般我删除VC的扩展名为:.ipch.pdb.pch.sdf.tlog.obj.idb.ilk.res.根据需要,自行配置. 下载地址:http://download.csdn.net/detail/yxstars/8201833 下面是一些vc扩展名的含义: .APS:存放二进制资源的中间文件,VC把当前资源文件

批量创建文件,批量改名,批量删除

#使用for循环批量创建10个文件 #!/bin/sh if [ ! -d $PWD/file ] && mkdir -p $PWD/file then path=$PWD/file for count in `seq 10` do cd $path && touch linux-$count.jpg done else exit 1 fi #使用for循环批量改名 #!/bin/sh if [ -d $PWD/file ] && cd $PWD/file

Linux下使用awk批量删除共享内存

1.awk简介 awk 是一个强大的文本分析工具.sed 常常用于一整个行的处理,而 awk 则倾向于以空格和tab键为默认分隔符将每行切片成一个个域(也就是一列)来处理.awk适用于小型的数据处理. awk有3个不同版本: awk.nawk和gawk,未作特别说明,一般指gawk,gawk 是 awk 的 GNU 版本. 2. awk语法格式 awk 'pattern1{action1} pattern2{action2} -' filename awk 后面接两个单引号并加上大括号 {} 来

php批量删除

之前我们通过php对数据库的操作,实现了对数据的简单的增删改查.今天我们继续通过php对数据库的操作,来进一步完善相关的设计,今天我们要实现批量删除功能. 之前我们已经做出了查询页面,那么现在要实现批量删除功能,首先要给每个code前面加上复选框和相关操作按钮.我们早前已经通过遍历的方式经数据库里的内容展示出来,因此,对于复选框的设置,我们仅仅需要在此前代码的基础上,稍加设置即可轻松给每个code加上复选框并添加上操作按钮(详情见代码). <form action="piliangshan

bulk批量删除数据

bulk批量删除数据 1.  案列介绍 需要在一个1亿行的大表中,删除1千万行数据 需求是在对数据库其他应用影响最小的情况下,以最快的速度完成 如果业务无法停止的话,可以参考下列思路: 根据ROWID分片.再利用Rowid排序.批量处理.回表删除 在业务无法停止的时候,选择这种方式,的确是最好的 一般可以控制在每一万行以内提交一次,不会对回滚段造成太大压力 我在做大DML时,通常选择一两千行一提交 选择业务低峰时做,对应用也不至于有太大影响 2.  代码实现 测试环境 drop table t_

复选框全选、批量删除

// 脚本全选 1 <head runat="server"> 2 <title></title> 3 <script type="text/javascript"> 4 function selectAll(chk) { 5 var checkboxs = document.getElementsByTagName("input"); 6 for (var i = 0; i < checkb