返回顶部
首页 > 资讯 > 精选 >vue基于el-table怎么实现多页多选及翻页回显
  • 918
分享到

vue基于el-table怎么实现多页多选及翻页回显

2023-07-04 19:07:45 918人浏览 独家记忆
摘要

这篇“Vue基于el-table怎么实现多页多选及翻页回显”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“vue基于el-ta

这篇“Vue基于el-table怎么实现多页多选及翻页回显”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“vue基于el-table怎么实现多页多选及翻页回显”文章吧。

1、问题交代:

在pc版的列表页面中,假设当前在列表的第一页,想要在当前页面选择几行数据,跳转到其他页面选择几行数据,选择后的数据页面展示为已勾选状态,经过跳转页面之后,数据选择状态依然存在,且可以将已选择的数据的id传到后端;即标题所述的实现多页多选、翻页回显问题 。示例图片如下:

下面第一个图为第一页选择的数据信息:

vue基于el-table怎么实现多页多选及翻页回显

 下图为跳转到第二页选择数据的截图:

vue基于el-table怎么实现多页多选及翻页回显

想达到的最终效果是这两个页面不管怎么跳转,都能显示跳转之前的选中状态。

2、实现的步骤

2.1  设置table标签

下面加粗字体是实现多页多选 翻页回显的必要设置,下面依次说明一下

<el-table size="small" :data="listData" ref="multipleTable" row-key="getRowKeys" @select="handleCheckBox" @select-all="handleSelectAll" highlight-current-row v-loading="loading" border element-loading-text="拼命加载中" style="width: 100%;">

      <el-table-column align="center" type="selection" width="60"></el-table-column>

el-table 标签中设置信息解读:

  • ref="multipleTable":ref是设置对这个el-table的引用,设置后可以在其他地方通过this.$refs.multipleTable 进行调用使用数据

  • row-key="getRowKeys":指定数据的 Key,用来优化 Table 的渲染;在使用 reserve-selection 功能与显示树形数据时,该属性是必填的。类型为 String 时,支持多层访问:user.info.id,但不支持 user.info[0].id,此种情况请使用 Function

  • @select="handleCheckBox":指定用户手动勾选数据行的 Checkbox 时触发的事件,这个名称要和下面method中方法名对应上

  • @select-all="handleSelectAll":指定用户手动勾选全选 Checkbox 时触发的事件,这个名称要和下面method中方法名对应上

el-table-column标签中设置的信息解读:

  • type="selection":将el-table的第一列设置成显示多选框

2.2 定义记录选择的数组

在export default 的data()中进行定义数组,只展示了需要添加的代码

export default {  data() {    return {               multipleSelection: [],

2.3 定义手动单选 和手动全选的函数/方法

在export defalt的method中编写下面函数方法: 

 //该方法是单选时的方法 handleCheckBox(rows, row) {         if (this.multipleSelection.find((item) => item == row.case_id)) {      //下面这个filter方法就是删除的方法      this.multipleSelection = this.multipleSelection.filter(        (item) => item != row.case_id      );    } else {      this.multipleSelection.push(row.case_id);    },  //该方法是当页全选的方法 handleSelectAll(rows) {    if (rows.length) {      rows.forEach((row) => {        if (!this.multipleSelection.find((item) => item == row.case_id)) {          this.multipleSelection.push(row.case_id);        }      });    } else {      this.listData.forEach((row) => {        this.multipleSelection = this.multipleSelection.filter(          (item) => item != row.case_id        );      });    }  }, //下面的方法是进行设置行标识key的方法getRowKeys(row) {    return row.case_id}

2.4 写控制回显部分代码

因为在实现分页的时候使用了分页组件,即每次翻页都会调用后端的list方法去查询这个页面的数据信息,所以回显的逻辑要方法每次调用后端数据的逻辑中,代码如下:

getdata(parameter) {      this.loading = true            TestCaseList(parameter)        .then(res => {          this.loading = false          if (res.success == false) {            this.$message({              type: 'info',              message: res.msg            })          } else {            this.listData = res.data            // 分页赋值            this.pageparm.currentPage = this.fORMInline.page            this.pageparm.pageSize = this.formInline.limit            this.pageparm.total = res.count            //这里是回显的功能代码 当切换页面的时候 会重新调用list方法,在这个位置进行判断这个数据是否回显            this.$nextTick(()=>{            this.listData.forEach((item,index)=>{              if(this.multipleSelection.findIndex(v=>v == item.case_id) >= 0){                this.$refs.multipleTable.toggleRowSelection(                    this.$refs.multipleTable.data[index],                    true                );              }            })            console.log('这里是每次查询list接口之后的操作,看看是否回显');            console.log("multipleSelection=", this.multipleSelection);          })          }        })        .catch(err => {          this.loading = false          this.$message.error('菜单加载失败,请稍后再试!')        })    },

 具体功能实现讲解:

this.$nextTick(()=>{            this.listData.forEach((item,index)=>{              if(this.multipleSelection.findIndex(v=>v == item.case_id) >= 0){                this.$refs.multipleTable.toggleRowSelection(                    this.$refs.multipleTable.data[index],                    true                );              }            })

实现功能就是每次调用完后端的list接口,判断查出来的case_id是否有在multipleSelection数组中的,在数组中意味着要显示成已选中的状态,通过ref调用table数据 调用toggleRowSelection()方法实现,即上面加粗部分代码。

以上就是关于“vue基于el-table怎么实现多页多选及翻页回显”这篇文章的内容,相信大家都有了一定的了解,希望小编分享的内容对大家有帮助,若想了解更多相关的知识内容,请关注编程网精选频道。

--结束END--

本文标题: vue基于el-table怎么实现多页多选及翻页回显

本文链接: https://lsjlt.com/news/346929.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • vue基于el-table怎么实现多页多选及翻页回显
    这篇“vue基于el-table怎么实现多页多选及翻页回显”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“vue基于el-ta...
    99+
    2023-07-04
  • element如何实现table跨分页多选及回显
    小编给大家分享一下element如何实现table跨分页多选及回显,希望大家阅读完这篇文章之后都有所收获,下面让我们一起去探讨吧!data中定义getRowKeys,记录每行的key值getRowKeys(row) { ...
    99+
    2023-06-29
  • vue实现弹窗翻页多选效果
    本文实例为大家分享了vue实现弹窗翻页多选效果的具体代码,供大家参考,具体内容如下 最终效果 点选择按钮后,弹出选择用户弹窗,可翻页勾多个用户  完整代码 <te...
    99+
    2024-04-02
  • elementtable跨分页多选及回显的实现示例
    1.data中定义getRowKeys,记录每行的key值 getRowKeys(row) {    return row.id; }, 2.el-table绑定getRowKeys...
    99+
    2024-04-02
  • vue中使用el-table组件checkbox进行分页多选,回显、切换分页记住上一页所勾选和取消的选项(示例代码)
    vue中使用el-table组件checkbox进行分页多选,回显、切换分页记住上一页所勾选和取消的选项 <template>     <el-dialog tit...
    99+
    2022-12-20
    vue el-table多页多选 翻页回显 vue el-table多选回显 vue el-table多选
  • vue适用多页面应用怎么实现
    本文小编为大家详细介绍“vue适用多页面应用怎么实现”,内容详细,步骤清晰,细节处理妥当,希望这篇“vue适用多页面应用怎么实现”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。vue适用多页面应用。vue在工程化开...
    99+
    2023-07-04
  • 基于pytroch多元线性回归怎么实现
    在PyTorch中,可以使用torch.nn模块中的Linear类来实现多元线性回归。下面是一个简单的示例代码: import to...
    99+
    2024-04-02
  • 使用Vue-CLI怎么实现多页分目录打包
    使用Vue-CLI怎么实现多页分目录打包?相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。页面目录结构注意需要将默认的 html 模板文件 public/index.html&nb...
    99+
    2023-06-14
  • 在html页面的表单选项中怎么实现多选功能
    这篇“在html页面的表单选项中怎么实现多选功能”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这...
    99+
    2024-04-02
  • 使用oracle怎么实现一对多数据分页查询筛选
    使用oracle怎么实现一对多数据分页查询筛选?针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。先来看下第一次sql是如何写的查询之后在外面做...
    99+
    2024-04-02
  • 基于Java怎么用Mybatis实现oracle批量插入及分页查询
    这篇文章主要介绍“基于Java怎么用Mybatis实现oracle批量插入及分页查询”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“基于Java怎么用Mybatis实现oracle批量插入及分页查询”...
    99+
    2023-07-02
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作