element-ui table表格在搜索筛选后保持勾选状态

在进行项目开发时,遇到表格数据通过搜索筛选后,数据在表格中保持复选框选定的状态。element-ui提供了reserve-selection来完成这个事情。该属性需要配合row-key使用。注意,数据中包含一个字段id,不然在筛选后最后一次勾选的数据不会保持勾选状态。

<template>
  <el-table
    ref="multipleTable"
    :data="tableData"
    :row-key="getRowKey"
    tooltip-effect="dark"
    style="width: 100%"
    @selection-change="handleSelectionChange">
    <el-table-column
      :reserve-selection="true"
      type="selection"
      width="55">
    </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>
</template>

<script>
  export default {
    data() {
      return {
        tableData: [{
          id:1,
          date: '2016-05-03',
          name: '王小虎',
          address: '上海市普陀区金沙江路 1518 弄'
        }, {
          id:2,
          date: '2016-05-02',
          name: '王小虎',
          address: '上海市普陀区金沙江路 1518 弄'
        }],
        multipleSelection: []
      }
    },

    methods: {
      getRowKey(row){
		return row.id
	  }
      handleSelectionChange(val) {
        this.multipleSelection = val;
      }
    }
  }
</script>
  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
在 `element-ui` 的表格组件中,可以使用 `selection-change` 事件来监听勾选的变化。当勾选状态发生变化时,该事件会触发,同时会传递一个参数为当前勾选中的数据列表。 如果需要获取勾选后的索引值,可以遍历这个数据列表,获取每个勾选中数据的 `index` 属性值。例如: ```html <template> <el-table :data="tableData" @selection-change="handleSelectionChange"> <el-table-column type="selection" width="55"></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> </template> <script> export default { data() { return { tableData: [ { date: '2022-01-01', name: '张三', address: '上海市普陀区金沙江路 1518 弄' }, { date: '2022-01-02', name: '李四', address: '上海市普陀区金沙江路 1517 弄' }, { date: '2022-01-03', name: '王五', address: '上海市普陀区金沙江路 1519 弄' }, { date: '2022-01-04', name: '赵六', address: '上海市普陀区金沙江路 1516 弄' } ], selectedRows: [] } }, methods: { handleSelectionChange(rows) { // 遍历勾选中的数据,获取索引值 this.selectedRows = rows.map(row => this.tableData.indexOf(row)) } } } </script> ``` 在上面的例子中,我们在 `handleSelectionChange` 方法中通过遍历 `rows` 数组来获取勾选的数据在 `tableData` 中的索引值,并将这些索引值存储在 `selectedRows` 数组中。你可以根据实际需求对这些索引值进行进一步的处理。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值