element 表格多选+分页

表格多选且有分页时,保存选中状态
1> row-key 2> reserve-selection

<template>
  <el-table
    ref="multipleTable"
    :data="tableData"
    tooltip-effect="dark"
    style="width: 100%"
    :row-key='getRowKey'
    @selection-change="handleSelectionChange">
    <el-table-column
      type="selection"
      width="55"
      reserve-selection>
    </el-table-column>
    <el-table-column
      label="日期"
      width="120">
      <template slot-scope="scope">{{ scope.row.date }}</template>
    </el-table-column>
    <el-table-column
      prop="name"
      label="姓名"
      width="120">
    </el-table-column>
    <el-table-column
      prop="address"
      label="地址"
      show-overflow-tooltip>
    </el-table-column>
  </el-table>
  <el-pagination
    layout='total, prev, pager, next'
    :total='100'
    :page-size='10'
    @current-change='handleCurrentChange'>	
  </el-pagination>
</template>
  export default {
    data() {
      return {
        tableData: [{
          date: '2016-05-03',
          name: '王小虎',
          address: '上海市普陀区金沙江路 1518 弄'
        }, {
          date: '2016-05-02',
          name: '王小虎',
          address: '上海市普陀区金沙江路 1518 弄'
        }, {
          date: '2016-05-04',
          name: '王小虎',
          address: '上海市普陀区金沙江路 1518 弄'
        }],
        multipleSelection: []
      }
    },
    methods: {
      getRowKey(row){
        return row.id
      },
      handleCurrentChange(val){
		console.log(val)	
	  },
      handleSelectionChange(val) {
        this.multipleSelection = val;
      }
    }
  }
Element表格(EleUI Table)是基于Vue.js的饿了么前端框架Element UI中的一个强大组件,它支持丰富的数据展示和交互功能,包括跨页分页。如果需要实现表格多选功能,并且跨越多页,你需要配置一些选项: 1. **启用多选**:首先,在表格的列定义中,设置`type`属性为`selection`,这将启用选择模式。 ```html <el-table :data="tableData" :select-on-indeterminate="false" @select="handleSelectionChange"> <el-table-column type="selection"></el-table-column> </el-table> ``` 2. **分页处理**:使用`el-pagination`组件配合表格,当用户翻页时,需要确保选择的状态能够同步到新的页面上。可以在`handleSelectionChange`事件中更新分页状态,并传递当前页的数据给表格。 ```javascript methods: { handleSelectionChange(selection) { this.selectedRows = selection; // 更新分页数据和滚动位置 this.pagination.currentPage = 1; // 重置到第一页 this.loadPage(); // 加载对应页的数据 }, loadPage() { const currentPage = this.pagination.currentPage; const pageSize = this.pagination.pageSize; const startIndex = (currentPage - 1) * pageSize; const endIndex = startIndex + pageSize; // 调用后台API获取对应页的数据,注意带上选择行的标识 this.fetchData(startIndex, endIndex, this.selectedRows); } } ``` 3. **数据获取**:根据用户的页数请求新的数据,同时携带已选择的行信息,以便在新页面显示正确的多选结果。 记住,实际操作中可能还需要考虑性能优化,比如只发送改变后的行数据到服务器,避免不必要的网络请求。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值