antd vue 表格rowSelection选择框功能的使用方式
作者:YaaLee_
这篇文章主要介绍了antd vue 表格rowSelection选择框功能的使用方式,具有很好的参考价值,希望对大家有所帮助。以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。
antd vue 表格rowSelection选择框功能
html部分:
<a-table :columns="columns" :data-source="showList" :row-selection="rowSelection" :rowKey="record=>record.id" />
功能部分:
computed: {
rowSelection () {
return {
// type: 'radio', // 是否为单选
selectedRowKeys: this.dataListSelectionKeys,
onChange: (selectedRowKeys, selectedRows, event) => {
//selectedRowKeys 为你点击选框时这一页选中的所有key
//selectedRows 为你点击选框时这一页选中的所有数据
},
onSelect: (record, selected, selectedRows, nativeEvent) => {
//record 点击某一条的所有数据
//selected 点击的一条是否被选中
},
onSelectAll: (selected, selectedRows, changeRows) => {
//selected 点击全选是否选中
//selectedRows 点击全选判断所有的选中数据
//changeRows 所有改变选中状态的数据
},
getCheckboxProps: record => ({
props: {
// 全部默认禁止选中
// disabled: true,
// 某几项默认禁止选中(R: 当state等于1时)
// disabled: record.state == 1,
// 某几项默认选中(R: 当state等于1时)
defaultChecked: record.state === 1
}
})
}
}
}Antd Table组件rowSelection方法的一些坑
当table组件多选时,会将所有的表格数据全部选中。
在组件中官网有提供rowSelection方法,可以让Table的第一列成为联动的选择框以及通过rowSelection.selectedRowKeys来控制选项。

比较坑的是
selectedRowKeys控制的只是dataSource当前的序号,必须加上rowKey={record =>record.userId},如果不加上会导致联动的选择框异常,rowKey的id可以自定义为dataSource中的某个值。
遇到问题:当选择某一行的数据事,它会全部选中,而且在onChange事件中的selectRowKeys的值为“[null]”,如下图所示:
解决代码如下
<Table rowSelection={{type:"checkbox",selectedRowKeys:selectedUserKeys,
onChange:(selectedKeys,selectedRows) => selectedUserOnChange(selectedKeys,selectedRows)}}
columns={slackColumns} dataSource={unApproved} pagination={false} scroll={{y:80}} size="small" rowKey={record => record.userId}/>
以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。
