el-table 跨页选中

二话不说,直接上代码

        <el-table
          :data="dataList.results"
          @selection-change="handleSelectionChange"
          v-loading="loading"
          :row-key="rowKeyId"
          ref="taskTableRef">
          <el-table-column type="selection" width="55" fixed :reserve-selection="true" />
        </el-table>

主要就是两点:

1、el-table标签中的row-key,给每一条数据绑定唯一值,赋值如下:

function rowKeyId(row: any) {
  return row.id
}

2、el-table-column上的reserve-selection,在reserve-selection设置为true的情况下,表格数据更新时会保留选中状态。

以上两点即可实现跨页选中。

扩展:

如果做跨页批量删除操作,在调用成功删除接口后,记得清空选中状态,清空方法如下:

taskTableRef.value.clearSelection()

### 实现 `el-table` 组件在分情况下的多选并清除已选中状态 为了实现 `el-table` 的分多选功能,并能够在特定条件下清除已选中的选项,可以按照如下方法操作: #### 设置保留选择项的功能 通过配置 `el-table` 和 `el-table-column` 来启用面的选择记忆功能。这需要两个属性的支持: - 在 `<el-table>` 中添加 `:row-key="id"` 属性来指定唯一键名用于区分每一行记录[^1]。 - 在 `<el-table-column type="selection">` 添加 `:reserve-selection="true"` 属性以保持用户的选择不会因为翻而丢失[^2]。 ```html <el-table :data="tableData" border style="width: 95%" @selection-change="handleSelectionChange" row-key="id"> <el-table-column type="selection" align="center" width="55" :reserve-selection="true"></el-table-column> </el-table> ``` #### 提供自定义的方法处理清除逻辑 要实现在某些场景下(比如点击按钮或其他交互行为)清除当前所有的选中项,则可以通过调用 `clearSelection()` 方法完成此目的。这个 API 是由 Element UI 自身提供的,可以直接作用于 table 实例上[^3]。 ```javascript // 假设有一个名为 clearAllSelected 的函数用来执行清除动作 function clearAllSelected() { const tableRef = this.$refs.table; if (tableRef) { tableRef.clearSelection(); } } ``` 需要注意的是,在 Vue3 版本里可能还需要额外考虑响应式的更新机制以及生命周期钩子的影响;而在 Vue2 下则相对简单一些[^4]。 对于更复杂的业务需求,如动态加载数据源时重置选择列表等情形,建议结合实际应用场景调整上述策略的应用方式。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值