方法一:前端循环请求服务器端delete(id)方法

请问如何获得element-ui表格中的勾选项index,以实现批量删除功能

https://segmentfault.com/q/1010000012759131

方法二:传递 string类型字符串。例如: '1,2,3,4'

ids =[1,2,3,4]

url: '/investigator/submitAll/' + ids,
method: 'post'

服务器端接收到: string类型字符串 '1,2,3,4' ,然后string转int。

转换方法:

 var tstr = msgsnew.join(',');    //数组转字符串
console.log("tstr", tstr);
var tstrtwo = msgsnew.toString(); //数组转字符串
var tarra = tstr.split(',');    //字符串转数组

方法三:直接传递数组类型(网上案例均尝试失败)

axios传递数组参数爬坑总结

https://www.jianshu.com/p/68d81da4e1ad

参数:ids=1&ids=2&ids=3

博客主的这个案例成功了,但不知为何,我没有尝试成功!

2 axios向后台传递数组作为参数

https://blog.csdn.net/u012317188/article/details/79752096

JSON.stringify(ids)

服务器端收到的是string类型的 ‘[1,2,3,4]’

综上我采用了 方法二。

(如果有人尝试直接传递数组成功了,请一定留言!)

实现 : elementUI  table 的 多选 :

http://element-cn.eleme.io/#/zh-CN/component/table

代码摘要:

    <el-button style="margin:0 0 0 20px;" type="primary" @click="toggleSelection(list)">反选</el-button>
<el-button style="margin:0 0 0 20px;" type="primary" @click="submitAllSelection()">批量提交</el-button> <el-table
ref="multipleTable"
@selection-change="handleSelectionChange">
<el-table-column
type="selection"
width="55"/> data() {
return {
multipleSelection: []
}
}
methods: {
toggleSelection(rows) {
// console.log('rows', rows)
// console.log('multipleTable-start', this.$refs.multipleTable) //table对象
// this.$refs.multipleTable.toggleAllSelection(rows) //全选或全不选
if (rows) {
rows.forEach(row => {
this.$refs.multipleTable.toggleRowSelection(row)// 反选
})
} else {
// this.$refs.multipleTable.clearSelection() //清除选中
}
},
handleSelectionChange(val) {
this.multipleSelection = val //当前选中行的数据
},
submitAllSelection() {
if (this.multipleSelection.length > 0) {
this.$confirm('此操作将提交选中项, 是否继续?', '提示', {
confirmButtonText: '确定',
cancelButtonText: '取消',
type: 'warning'
}).then(() => {
const idList = []
for (const v of this.multipleSelection) {
idList.push(v.DataSourceID)
}
this.submitAll(idList)
}).catch(() => {
this.$notify({
title: '提示',
message: '已取消批量提交',
type: 'info',
duration: 2000
})
})
} else {
this.$notify({
title: '提示',
message: '请勾选要提交的项!',
type: 'warning',
duration: 2000
})
}
},
submitAll(idList) {
// const idList = JSON.stringify(ids)
// console.log('idList', idList)
submitAll(idList).then((response) => {
if (response.success) {
console.log('response', response.data)
for (const v of this.multipleSelection) {
const index = this.list.indexOf(v)
this.list[index].HasSubmitted = true
}
this.$notify({
title: '成功',
message: '批量提交成功',
type: 'success',
duration: 2000
})
} else {
this.$notify({
title: '失败',
message: '批量提交失败',
type: 'danger',
duration: 3000
})
}
})
}
} export function submitAll(idList) {
return request({
url: '/investigator/submitAll/' + idList,
method: 'post'
})
} 根据axios 封装出request 以简化请求。

  

C# webapi控制器

        /// <summary>
/// 批量提交
/// </summary>
/// <param name="ids"></param>
/// <returns></returns>
[HttpPost]
[Route("SubmitAll/{idList}")]
public ApiResult SubmitAll(string idList)
{
var result = new ApiResult();
result.success = false; if (!String.IsNullOrEmpty(idList) && !String.IsNullOrEmpty(idList.Trim()))
{
string[] strArray = idList.Split(',');
if (strArray.Length > 0)
{
int[] ids = new int[] { };
ids = Array.ConvertAll<string, int>(strArray, s => int.Parse(s));
var num = manage.SubmitAll(ids, User.Identity.GetUserId<int>());
result.success = true;
result.data = num;
} } return result;
}

  

// 数据库访问层

        public int SubmitAll(int[] idList, int userId)
{
int num = 0;
using (var pmdb = new ProjectEntities())
{
using (var tran = pmdb.Database.BeginTransaction())
{
try
{
var list = pmdb.T_Investigator.Where(d => idList.Contains(d.InvestigatorID) && d.CreateUserID == userId && d.HasSubmitted == false).ToList();
if (list.Count > 0)
{
foreach (var item in list)
{
item.HasSubmitted = true;
}
num = pmdb.SaveChanges();
tran.Commit();
}
}
catch (Exception ex)
{
tran.Rollback();//回滚
throw ex;
}
}
} return num;
}

  

vue axios 批量删除 数组参数的更多相关文章

  1. vue+axios通过formdata提交参数和上传文件

    demo.vue 文件 <template> <div class="demo"> <input v-model="importForm.m ...

  2. vue.js 批量删除跟全选,反选效果

    <!DOCTYPE html><html lang="en"> <head> <meta charset="UTF-8" ...

  3. ajax 传递数组参数

    一.ajax 传递数组参数 需要添加: traditional: true, let typeIDArr = [,,,,,]; var that = this; var url = '@Url.Act ...

  4. springMVC 接收数组参数,mybatis 接收数组参数,mybatis批量插入/批量删除案例

    案例是给一个用户赋予多个权限,多个权限用其对应的主键 id 为参数,组成了 一个id数组,传给springMVC,然后springMVC传给mybatis,然后mybatis批量插入.其实类似的场景还 ...

  5. springmvc使用数组接收页面商品列表批量删除传过来的参数,并完成批量删除的操作。

    1.1 需求 在商品列表页面选中多个商品,然后删除. 1.2 需求分析 此功能要求商品列表页面中的每个商品前有一个checkbox,选中多个商品后点击删除按钮把商品id传给controller,根据商 ...

  6. Mybatis 插入与批量插入以及多参数批量删除

    实体类: import java.io.Serializable; public class AttachmentTable implements Serializable { private sta ...

  7. Vue小案例 之 商品管理------批量删除与商品数量的调整

    通过索引进行删除,进行测试,是否获取其索引: 测试效果: 测试代码,在vue中定义一个空的数组,以便后面进行数据的绑定: data:{ imgUrl:'../res/images/', imgName ...

  8. Mybatis 针对ORACLE和MYSQL的批量插入与多参数批量删除

    今天利用Mybatis的<for each>标签做oracle的批量插入数据时,发现和MySQL数据库有区别.在此记录下,以防之后再踩坑. 一.批量插入: 1.controller: /* ...

  9. Servlet 获取 数组id进行批量删除

    把获取的复选框选中的 id(一般来说都是根据id 进行批量删除的) 从jsp页面 传值到Servlet中 jsp点击事件中: var array=[];  //先声明一个数组变量 var ids=$( ...

随机推荐

  1. go语言的for循环

    for循环是一个循环控制结构,可以执行指定次数的循环. 三种循环方式 第一种,常见的 for 循环,支持初始化语句 for init; condition; post { } init: 一般为赋值表 ...

  2. .net 发布程序时出现“类型ASP.global_asax同时存在于...”错误的解决办法

    web程序发布后,通过浏览器访问程序显示如下的错误信息: 编译器错误消息: CS0433: 类型“ASP.global_asax”同时存在于“c:\WINDOWS\Microsoft.NET\Fram ...

  3. 菜鸡谈OO 第二单元总结

    “欢迎来到(玄学)多线程的新世界” Homework1 单部傻瓜电梯调度 Part1 多线程设计策略 第一次学到了线程这个概念,与之前的编程体验大有不同.最大的区别在于从原本的线性发生程序变成了多个行 ...

  4. AWS MVC 详解

    由于新工作是在AWS PaaS平台上进行开发,为不耽误工作,先整理一下AWS MVS的使用规范,快速上手.对AWS PaaS平台的相关介绍留到以后再来补充.本文几乎是对官方学习文档的整理,有遗漏的后补 ...

  5. XML语言1.简介和语法

    一.什么是XML语言? XML 指可扩展标记语言(Extensible Markup Language) Xml是独立于软件和硬件的信息传输工具. XML 是一种很像HTML的标记语言. 但xml不是 ...

  6. aarch64的架构:unrecognized command line option '-mfpu=neon'

    不用添加这个'-mfpu=neon'的编译器选项了,因为这个架构下neon是默认启动的. 参考: https://lists.linaro.org/pipermail/linaro-toolchain ...

  7. Senparc之OAuth原理

    今天学习了网易云课堂的 盛派的微信开发课程之OAuth微信网页授权:OAuth原理,边听边来波笔记: 1.什么是OAuth? OAuth 你的接口提供给别人使用,你需要提供Oauth,可以让被人使用, ...

  8. 深入理解Spring Redis的使用 (七)、Spring Redis 使用 jackson序列化 以及 BaseDao代码

    之前在介绍Spring Redis进行存储的时候,都是通过RedisTemplate中的defaultSerializer,即JdkSerializationRedisSerializer.通过Jdk ...

  9. [Swift]LeetCode146. LRU缓存机制 | LRU Cache

    Design and implement a data structure for Least Recently Used (LRU) cache. It should support the fol ...

  10. Truncated incorrect DOUBLE value: 'd'的解决方法(jdbc)

    今天写jdbc中dao的增删改查时遇到了一个问题,花费了好长时间,不过还好,有我峰哥出头,问题解决了,在这做个分享,对峰哥表达一下感激之情 网上搜索到的对“Truncated incorrect DO ...