elementUi中Table表格添加多選,及多選的清空函數


  • 實現多選非常簡單: 手動添加一個el-table-column,設type屬性為selection即可;
<template>
  <el-table
    ref="multipleTable"
    :data="tableData"
    tooltip-effect="dark"
    style="width: 100%"
    @selection-change="handleSelectionChange">
    <el-table-column
      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>
  <div style="margin-top: 20px">
    <el-button @click="toggleSelection([tableData[1], tableData[2]])">切換第二、第三行的選中狀態</el-button>
    <el-button @click="toggleSelection()">取消選擇</el-button>
  </div>
</template>


ref 綁定數據對象data中的數據 multipleTable用於儲存選中的選項:

 

<script>  
  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 弄'
        }, {
          date: '2016-05-01',
          name: '王小虎',
          address: '上海市普陀區金沙江路 1518 弄'
        }, {
          date: '2016-05-08',
          name: '王小虎',
          address: '上海市普陀區金沙江路 1518 弄'
        }, {
          date: '2016-05-06',
          name: '王小虎',
          address: '上海市普陀區金沙江路 1518 弄'
        }, {
          date: '2016-05-07',
          name: '王小虎',
          address: '上海市普陀區金沙江路 1518 弄'
        }],
        multipleSelection: [] //用於存儲選中行數據的集合
      }
    },

    methods: {
      toggleSelection(rows) {
        if (rows) { rows.forEach(row => { this.$refs.multipleTable.toggleRowSelection(row); }); } else { this.$refs.multipleTable.clearSelection(); //清空選項,項目中:請求接口后,重新請求數據渲染頁面的時候,使用此方式,清空選中勾選狀態。  }
      },
      handleSelectionChange(val) {
        this.multipleSelection = val;
      }
    }
  }
</script>

項目中如果只能選擇一個數據進行操作

  

@selection-change事件 :選項發生變化時觸發
<el-table
        @selection-change="handleSelectionChange"
        ref="multipleTable"
        :key="tableKey"
        :data="tableData"
        row-key="id"
        v-loading="tableLoading"
        element-loading-text="給我一點時間"
        fit
        size="mini"
        tooltip-effect="dark"
        style="width: 100%;font-size: 12px;margin-bottom:15px;border-radius:3px;"
        :header-cell-style="tableHeaderColor"
      >

methods:方法

handleSelectionChange(val) {   // 返回值val是選中行數據的集合
      this.multipleSelection = val.map(item => item.id);
      this.isProcurementStatus = val.map(item => item.procurementStatus);
      this.forDialogTitle = val.map(item => item.purchaseProject);
    },

通過判斷 multipleSelection長度確定選中的個數

  


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM