vfp 选中grid中某一行删除数据_gridview中的批量操作

本文介绍了在VFP中使用Gridview进行批量操作的简单方法,特别是如何选中某一行并删除数据。通过设置gridview的选项、添加复选框、创建批量删除按钮,以及编写相应的JS代码和后台处理方法,可以轻松实现这一功能。
摘要由CSDN通过智能技术生成

在用gridview时,大家都注意到了,列表的开头有现成的复选框,这肯定是批量操作中用到的,今天就来介绍一下,gridview中的批量操作,简直简单的不行,效果图如下:

18ce09327bb96a0d4b01cba004da64de.png

前端页面只需要改这几个地方即可,

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

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

'options' =>['id'=>'grid'],
'columns' => [
 [
 'class' => 'yiigridCheckboxColumn',
 'name'=>'id',
 ],//复选框列

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

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

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

$script = <<<SCRIPT
$(".gridviewdelete").on("click", function () {
if(confirm('您确定要删除吗?')){
 var keys = $("#grid").yiiGridView("getSelectedRows");
 $.ajax({
 url: '/food/batchdelete',
 data: {ids:keys},
 type: 'post',
 success: function (t) {
 t = JSON.parse(t);
 if (t.status == 1) {
 window.location.href= window.location.href;
 }
 },
 error: function () {
 alert("删除失败!")
 }
  
 })
 }
});
SCRIPT;
$this->registerJs($script);
?>

5.post传给控制器的是一个数组,这里我写了一个批量操作的方法,一块贴出来,这里的删除为逻辑删除

public function actionBatchdelete(){
 $this->enableCsrfValidation = false;//去掉yii2的post验证
 $ids = Yii::$app->request->post();
 $model = new Product();
 if($model->batchHandle($ids['ids']))
 return yiihelpersJson::encode(['status'=>1,'info'=>'删除成功!']);
 else
 return false;
}

其中batchHandle为批量操作的方法:

public function batchHandle($ids = [],$status = 3){
 foreach ($ids as $k=>$v){
 $model = $this->has(['id'=>$v]);
 $model->status = $status;
 if(!$model->save(false))
 return new BadRequestHttpException('操作失败!');
 }
 return true;
}
 
//其中has方法如下:
public function has($where=[], $field='*') {
 $result = $this->_query
 ->select($field)
 ->where($where)
 ->one();
 return empty($result) ? false : $result;
}

批量操作就这样完成了,是不是很简单,gridview中的一些使用方法也算是总结的差不多了,希望能帮助到大家!该睡觉了!

84cc86bb119f0f1fce5bbeb3fc276c35.gif
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值