el-table加分页后多选翻页后仍保持选中状态

在el-table中加 :row-key=“getRowKeys”,在type为selection的el-table-column中添加:reserve-selection=“true”,在js的methods中加getRowKeys方法,即可实现table翻页及搜索查询后仍保持之前的选中状态;

<el-table
      ref="multipleTable"
      :data="tableData"
      tooltip-effect="dark"
      size="mini"
      stripe
      height="560px"
      @row-click="handleClickTableRow"
      @selection-change="handleSelectionChange"
      :row-key="getRowKeys"
    >
    <el-table-column type="selection" :reserve-selection="true"></el-table-column>
</el-table>
getRowKeys(row) {
      return row.id;
    },

Vue.jsElement UI库中,`el-table`组件用于展示数据表格并支持丰富的功能,包括分页和多选。如果需要在分页切换时保持选择的状态,可以借助`keep-alive`或`sessionStorage`等机制来保存选中信息。 以下是基本步骤: 1. **数据管理**: - 使用`v-model`绑定一个数组,存储用户的选择项,例如`selectedItems`。 ```html <template> <el-pagination :current-page="currentPage" @current-change="handlePageChange"></el-pagination> <el-table :data="tableData" v-model="selectedItems"> <!-- 表格列 --> </el-table> </template> <script> export default { data() { return { currentPage: 1, tableData: [], // 这里假设已经载了分页数据 selectedItems: [] // 保存选择的数据项 }; }, methods: { handlePageChange(page) { this.currentPage = page; // 更新当前页 // 如果有分页策略,记得同步数据 this.getTableData(page); // 获取新的数据 } }, }; </script> ``` 2. **处理分页数据获取**: - `getTableData(page)`函数应该从服务器或缓存中获取对应页数的数据,并确保将用户的已选数据更新到新数据上。 3. **持久化选择**: - 使用`keep-alive`时,可以在路由守卫(如`beforeRouteUpdate`)中保存和恢复选中状态。 - 或者,在`beforeDestroy`生命周期钩子中,使用`sessionStorage`或本地存储(localStorage、vuex等)将选中状态序列化存储。 ```javascript // 使用 keep-alive 和生命周期钩子 <template> <keep-alive> <router-view :key="viewKey"></router-view> </keep-alive> </template> <script> export default { beforeDestroy() { // 使用 sessionStorage 存储选中状态 localStorage.setItem('selectedItems', JSON.stringify(this.selectedItems)); }, created() { const storedItems = localStorage.getItem('selectedItems'); if (storedItems) { this.selectedItems = JSON.parse(storedItems); } }, }; </script> ``` 请注意,这种方式仅适用于单页应用(SPA)。如果是传统的服务器渲染应用,那么你需要在后端处理这个状态保存的问题。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值