大佬博客

el-table多选,对于当前页的多选我们是很容易知道并显示给用户的,但是对于分页后要记住哪些页多选了哪些数据,并正确的显示给用户就有点小挑战了。具体实现:第一种,搬运工在此?,来自于大佬的文章详戳?

<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta http-equiv="X-UA-Compatible" content="ie=edge"><title>Document</title><link href="https://unpkg.com/element-ui/lib/theme-chalk/index.css" rel="stylesheet">
</head>
<body><div id="app"><el-tableref="multipleTable":data="tableData"@select="handleSelect"@select-all="handleSelectAll"><el-table-column type="selection" width="55"></el-table-column><el-table-column label="索引" width="120" prop="index"></el-table-column></el-table><el-paginationlayout="prev, pager, next":page-size="10":total="total"@current-change="handleCurrentChange"></el-pagination></div><script src="https://cdn.jsdelivr.net/npm/vue/dist/vue.js"></script><script src="https://unpkg.com/element-ui/lib/index.js"></script><script>new Vue({el: '#app',data: {checkData: [],tableData: [],total: 11,},methods: {/** * 获取分页数据* 如果该页存在选中的数据,则选中*/addDataItem(val, len) {this.tableData = Array.from({length: len}, (v, i) => v = {index: i,id: `${val}${i}`,});if (this.checkData.length) {this.toggleSelection(this.checkData);}},handleCurrentChange(page) {if (page === 1) {this.addDataItem(1, 10);} else {this.addDataItem(2, 1);}},/** * 单选*/ handleSelect(selection, row) {let allRows = selection.filter((item) => !!item);if (allRows.find(item => item.id === row.id)) {this.addRows([row]);} else {this.removeRows([row]);}},/** * 全选*/ handleSelectAll(selection) {if (selection.length > 1) {this.addRows(this.tableData);} else {this.removeRows(this.tableData);}},addRows(rows) {for (const key of rows) {if (!this.checkData.find((item) => item.id === key.id)) {this.checkData.push(key);}}},removeRows(rows) {if (this.checkData.length > 0) {for (const key of rows) {this.checkData = this.checkData.filter((item) => item.id !== key.id);}}},toggleSelection(rows) {if (rows) {rows.forEach(row => {this.$nextTick(() => {const checked = this.tableData.find(tableRow => tableRow.id === row.id);this.$refs.multipleTable.toggleRowSelection(checked, true);});});} else {this.$refs.multipleTable.toggleRowSelection(this.tableData, false);this.removeRows(this.tableData);}}},created() {this.addDataItem(1, 10);},});</script>
</body>
</html>

第二种,翻看element-ui官方文档,原来已经有实现的方法了,非常简单

<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta http-equiv="X-UA-Compatible" content="ie=edge"><title>Document</title><link href="https://unpkg.com/element-ui/lib/theme-chalk/index.css" rel="stylesheet">
</head>
<body><div id="app"><el-tableref="multipleTable1":data="tableData"@selection-change="handleSelectionChange":row-key="getRowKeys"><el-table-column type="selection" :reserve-selection="true" width="55"></el-table-column><el-table-column label="索引" width="120" prop="index"></el-table-column></el-table><el-paginationlayout="prev, pager, next":page-size="10":total="total":current-page.sync="currentPage"@current-change="handleCurrentChange"></el-pagination></div><script src="https://cdn.jsdelivr.net/npm/vue/dist/vue.js"></script><script src="https://unpkg.com/element-ui/lib/index.js"></script><script>new Vue({el: '#app',data: {checkData: [],tableData: [],total: 13,currentPage: 1,},methods: {/** * 获取分页数据*/addDataItem(val, len) {this.tableData = Array.from({length: len}, (v, i) => v = {index: i,id: `${val}${i}`,});},handleCurrentChange(page) {this.currentPage = page;if (page === 1) {this.addDataItem(1, 10);} else {this.addDataItem(2, 3);}},handleSelectionChange(val) {this.checkData = val;},getRowKeys(row) {return row.id;},},created() {this.addDataItem(1, 10);},});</script>
</body>
</html>

[转]el-table表格翻页后仍记忆所选项相关推荐

  1. java swing表格翻页_让Swing表格支持远程后台数据翻页

    TWaver Java不但提供了TTable.TElementTable这些表格组件,而且还提供了表格翻页器TPageNavigator.让表格和翻页器结合工作,可以立刻做出一个非常标准的可翻页的表格 ...

  2. select vba 网页 翻页_通过VBA程序来实现Excel表格翻页的方法

    在查看拥有较多数据的Excel工作表时,可以通过按"PageUp"或"PageDown"键(或拖动程序窗口左侧滚动条上的滑块)来进行翻页操作.实际上,用户还可以 ...

  3. HTML表格翻页效果-洋葱先生-杨少通

    HTML表格翻页效果-洋葱先生-杨少通 洋葱先生-杨少通感谢您的到来 这是一个表格翻页的效果,希望大家喜欢! 代码如下: <!DOCTYPE html> <html> < ...

  4. 87.el-table翻页后保存前一页所选并再次返回前一页时把数据勾选上

    1.首先给<el-table>添加ref.row-key.选择单条事件.全选事件 <el-table ...... ref="newTable" row-key= ...

  5. layui.table(表格)跨页多选

    layui版本:2.5.4 使用数据表格时可能会需要在翻页时保留各个页面选中行的信息,效果如下. 效果演示 实现思路 实现思路大致分为以下三步 1.定义两个全局变量用于保存选中行的id,以及当前页所有 ...

  6. Table表格刷新内容后

    今天遇到了一个问题,Table表格显示两页,第一页五条记录,第二页少于五条纪录,然后点下一页翻页到第二页的时候,table最下面的边框还是会存在,排查了各种情况,终于发现是将box-sizing设置为 ...

  7. Table表格文字超出后循环滚动的动画实现方案核心逻辑

    需求 前几天公司要求做一个动态表格:大概就是可配置的(颜色,字体,行数等等),用作屏幕展示.因此就要求表格文字在超出宽度时候可以有动画循环滚动展示内容.大概这个样子: 项目使用vue框架,动画因为涉及 ...

  8. html表格翻页简单,利用jQuery实现一个简单的表格上下翻页效果

    前言 本文主要介绍的是利用jQuery实现一个简单的表格上下翻页效果,注:实现原理与轮播图相似.下面话不多说,来看看详细的 实现方法吧. html: 日期参与团购场次团购结果当前状态 02.08 第一 ...

  9. layui 滚动数据_layui 实现table翻页滚动条位置保持不变的例子

    最近使用了layui table但是发现了一系列问题,由于被封装过不好自己修改,比如翻页后滑动条每次都会复位,导致体验不好,通过调试,我发现layui table并没有给div加id标签,我通过cla ...

  10. 让Swing表格支持远程后台数据翻页

    TWaver Java不但提供了TTable.TElementTable这些表格组件,而且还提供了表格翻页器TPageNavigator.让表格和翻页器结合工作,可以立刻做出一个非常标准的可翻页的表格 ...

最新文章

  1. 重构代码(应如写诗)
  2. 安装opencv3.0.0与配置Visual studio 2008
  3. (二叉树的遍历)Tree UVa 548
  4. linux wget 命令_我如何使用wget Linux命令恢复丢失的图像
  5. linux黑板模式,敲黑板!怎样使用 Linux stat 命令创建灵活文件列表?
  6. 解决mac使用svn: E170000: Unrecognized URL scheme for h
  7. C++杂记之this指针
  8. 最土团购程序一些常见的数据库操作
  9. maven内置属性详细说明
  10. VC Webbrowser操作全解(二)
  11. 适用于protel99SE初学者
  12. 平稳与非平稳序列的拟合及预测
  13. Macbook开启HIDPI(2K显示器)
  14. 缓存应用(一)Ehcache使用介绍
  15. java钟表动画_钟表动画的实现
  16. 下载tensorflow速度慢怎么办?
  17. 亚马逊Alexa Skill介绍
  18. 细思恐极的星座分析(上) ——用大数据和机器学习揭开十二星座的真实面目!
  19. 2018电赛手势识别比赛经历
  20. 播放视频出现错误代码0xc00d36c4如何修复?

热门文章

  1. 【风电功率预测】基于matlab粒子群算法优化LSTM风电功率预测【含Matlab源码 941期】
  2. 【图像处理】基于matlab图像RGB三色合成+分离【含Matlab源码 401期】
  3. openai-gpt_GPT-3:大惊小怪的是什么?
  4. 图像增强python_Python图像增强简介(第1部分)
  5. python xml etree_Python 标准库之 xml.etree.ElementTree
  6. 钉钉 e应用 mysql_钉钉E应用入门总结
  7. 一张图告诉你,选择企业安全软件真的不难!
  8. python简单查询用户
  9. 计算机的实现的理论基础
  10. Linux 使用 iptables屏蔽IP段