element-ui框架中的table表格实现分页记忆

 <el-table :row-key="getRowKey" @select-all="handleSelectionAllChange" @select="handleSelectionChange"
      :data="tableData" style="width: 100%" height="300px">

Element-ui官方解释

row-key:行数据的 Key,用来优化 Table 的渲染;在使用 reserve-selection 功能与显示树形数据时,该属性是必填的。类型为 String 时,支持多层访问:user.info.id,但不支持 user.info[0].id,此种情况请使用 Functio
select-all:当用户手动勾选全选 Checkbox 时触发的事件
select:当用户手动勾选数据行的 Checkbox 时触发的事件

代码实例:

<template>
  <div>
    <el-table :row-key="getRowKey" @select-all="handleSelectionAllChange" @select="handleSelectionChange"
      :data="tableData" style="width: 100%" height="300px">
      <el-table-column type="selection" width="55" :reserve-selection="true">
      </el-table-column>
      <el-table-column prop="date" label="日期" width="180">
      </el-table-column>
      <el-table-column prop="name" label="姓名" width="180">
      </el-table-column>
      <el-table-column prop="address" label="地址">
      </el-table-column>
    </el-table>
    <el-pagination @size-change="handleSizeChange" @current-change="handleCurrentChange"
      :current-page.sync="currentPage" :page-size="pageSize" :page-sizes="[30, 100, 200, 300, 400]"
      layout="total, prev, pager, next" :total="tableDataAll.length">
    </el-pagination>
  </div>
</template>

<script>
export default {
  data() {
    return {
      tableData: [],
      tableDataAll: [],
      currentPage: 1,
      pageSize: 30,
      selectedList: [], //勾选的数据
    }
  },
  created() {
    for (let index = 0; index < 300; index++) {
      this.tableDataAll.push({
        Id: index,
        date: index,
        name: '王小虎',
        address: '上海市普陀区金沙江路 1518 弄'
      })
    }
    this.getPage()
  },
  methods: {
    handleSizeChange(val) {
      this.pageSize = val
      this.getPage()
    },
    handleCurrentChange(val) {
      this.currentPage = val
      this.getPage()
    },
    getPage() {
      let nowIndex = this.pageSize * (this.currentPage - 1);
      let size = nowIndex + this.pageSize
      this.tableData = this.tableDataAll.slice(nowIndex, size)
    },
    //全现多框的切换
    handleSelectionAllChange(val) {
      let arrAll = JSON.parse(JSON.stringify(val));
      this.selectedList = arrAll;
    },

    // 批量操作的id
    getRowKey(row) {
      return row.Id;
    },
    //现多框的切换
    handleSelectionChange(val, row) {
      let arrAll = JSON.parse(JSON.stringify(val));
      if (this.selectedList.filter((item) => item.Id == row.Id).length == 0) {
        this.selectedList = arrAll;
      } else {
        this.selectedList = arrAll.filter((item) => item.Id !== row.Id);
      }
    },
  }
}
</script>

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
element-ui是一套基于Vue.jsUI框架,其table表格组件提供了许多强大的功能和骚操作。 首先,element-uitable表格支持对数据进行排序操作。只需设置column的sortable属性为true,即可实现对某一列数据的升降序排列,方便用户快速找到所需的信息。 其次,table表格还支持对数据进行筛选操作。通过设置filters属性,可以在表头显示可选的筛选项,用户可以选择自己需要的筛选条件,从而快速过滤数据,提高表格的可读性和实用性。 此外,element-uitable表格还支持分页功能。通过设置pagination属性,可以实现表格数据的分页展示,方便用户浏览大量数据,同时也可以通过自定义分页器的样式和布局,满足不同项目的需求。 另外,table表格还提供了自定义列模板的功能。通过设置scoped slot,可以自定义表格每一列的展示方式,包括渲染不同的DOM元素、添加操作按钮等,非常灵活。 此外,element-uitable表格还提供了可编辑的功能。通过设置column的editable属性为true,可以实现编辑表格数据的功能,用户可以直接在表格进行数据的修改,提高数据的编辑效率。 最后,element-uitable表格还支持表格数据的导出和导入。通过设置导出按钮和导入事件,可以方便地将表格数据导出为Excel或导入Excel数据到表格,提高了数据的共享和交互性。 综上所述,element-ui关于table表格的这些骚操作,使得我们可以更方便地对表格数据进行排序、筛选、分页、自定义列模板、编辑、导出和导入等操作,提高了表格的可读性、编辑效率和交互性,满足了不同项目的需求。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值