记录一下使用element ui table多选的过程,业务需求:分页显示table数据,选择多行数据时,翻页后再回到有多选的页面时,依然显示多选的状态,保证选中的数据不随翻页而失效。
首先说一下项目环境,Vue2.0
+ Vue Cli 3.x
+ element-ui 2.11
多选需要用到两个table属性:
Table Attributes
Table Events
<el-table
:data="tableData"
:header-row-style="{'background-color':'#1B3F8D'}"
:header-cell-style="{'text-align':'center'}"
:row-class-name="tableRowClassName"
:row-key="getRowKeys"
@selection-change="selectedChange"
v-loading="listLoading"
highlight-current-row
ref="multipleTable"
>
<el-table-column type="selection" :reserve-selection="true" min-width="55" />
...
</el-table>
之前找了很多方法,大概都是需要在获取数据后,判断这一页之前有没有选中数据,如果有,让选中的数据都调用toggleRowSelection()方法,可能需求不同或element-ui最新的版本优化过,经实测,不需要调用这个方法,只有在多选事件中将选中的数据存到数组中即可,每次都是返回的最新数据。
methods定义getRowKeys方法,定义行数据的Key,因为我的数据中有id参数,这里使用id作为key:
getRowKeys(row) {
return row.id;
},
定义多选事件方法:
selectedChange: function(selected) {
this.selectionAll = selected;
},
完。