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
}
})
}
}
}
当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}/>