antd vue 表格rowSelection选择框功能的使用方式
YaaLee_ 人气:0antd 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}/>
以上为个人经验,希望能给大家一个参考,也希望大家多多支持。
加载全部内容