我是通過v-if指令來做的,我用的是
checked3,checked4在data質指定。
<el-table :data="devicesGridData"> <el-table-column property="name" label="選擇" width="80"> <template slot-scope="scope"> <div v-if="1==scope.row.isSelected"> <el-checkbox v-model="checked3" @change="deviceBoxChange(scope.row.id)"></el-checkbox> </div> <div v-if="0==scope.row.isSelected"> <el-checkbox v-model="checked4" @change="deviceBoxChange(scope.row.id)"></el-checkbox> </div> </template> </el-table-column> <el-table-column property="code" label="設備編號" width="100"></el-table-column> <el-table-column property="name" label="設備名稱" width="100"></el-table-column> <el-table-column property="modelType" label="設備規格"></el-table-column> </el-table>
下面是錯誤的方法!!!!!!!!!!!!
官方文檔
不太明白這個是什么情況,直接指定不行,為什么,分頁的時候第二頁就有問題了
<el-table :data="devicesGridData"> <el-table-column property="name" label="選擇" width="80"> <template slot-scope="scope"> <div v-if="1==scope.row.isSelected"> <el-checkbox checked="true" @change="deviceBoxChange(scope.row.id)"></el-checkbox> </div> <div v-if="0==scope.row.isSelected"> <el-checkbox checked="false" @change="deviceBoxChange(scope.row.id)"></el-checkbox> </div> </template> </el-table-column> <el-table-column property="code" label="設備編號" width="100"></el-table-column> <el-table-column property="name" label="設備名稱" width="100"></el-table-column> <el-table-column property="modelType" label="設備規格"></el-table-column> </el-table>
后面發現上面的還是有問題,點第二頁的時候,如果第一頁默認選中了1,,2條,第二頁也會同樣1,2條被選中,盡管按照狀態來說不改該唄選中。
<el-table :data="devicesGridData" ref="multipleTable" @selection-change="handleSelectionChange">> <el-table-column type="selection" width="55"> </el-table-column> <el-table-column property="code" label="設備編號" width="100"></el-table-column> <el-table-column property="name" label="設備名稱" width="100"></el-table-column> <el-table-column property="modelType" label="設備規格"></el-table-column> </el-table>
注意上下分別對應:devicesGridData,multipleTable
套了層殼:
this.$nextTick(function () {//選中邏輯代碼},主要是解決數據加載前后問題導致分頁的時候,數據無法回顯復選框。
this.$nextTick(function () { this.devicesGridData.forEach(row=>{ if(row.selected){ this.$refs.multipleTable.toggleRowSelection(row,true); } }); });