antd 下拉框怎么联动_Antd的Table组件嵌套Table以及选择框联动操作

本文介绍如何在Ant Design的Table组件中实现父子Table的选择框联动。通过配置rowSelection的OnSelect和OnSelectAll,实现了父Table选中时子Table全选,子Table全选时父Table选中的效果。详细讲解了代码实现过程,包括子Table手动选择、取消选择、全选和取消全选的回调函数处理。
摘要由CSDN通过智能技术生成

一、需求

在使用Table组件嵌套Table时,父子Table的选择框需要联动,即父Table选中,该行下的子Table需要全选中,某一个子Table全部选中,则该子Table所在的父Table那一行也需要选中。

二、Table的rowSelection配置

父子Table联动,就不能使用OnChange,需要使用OnSelect以及OnSelectAll手动配置。

selectedRowKeys:指定选中项的key数组

OnSelect:手动选择/取消选择某行的回调

OnSelect(record, selected, selectedRows)

record:选中的当前行数据

selected:选中状态,true:选中,false:取消选中

selectedRows:选择的数组

OnSelectAll:手动选择/取消选择所有行的回调

OnSelect(selected, selectedRows, changeRows)

selected:选中状态,true:选中,false:取消选中

selectedRows:选择的数组

changeRows:改变的所有数组

三、根据antd文档搭建Table嵌套Table界面

import React, { useEffect, useState } from 'react';

import { Table, } from 'antd'

export default () => {

const dataSource: any = [

{

key: '1',

title: '餐饮酒店/服务员',

number: '8家门店,共8人',

time: '2020.05.25 15:35',

childData: [

{

key: '1.1',

jobTitle: '大桶大足浴-保安',

num: '2人',

},

{

key: '1.2',

jobTitle: '大桶大足浴-保安',

num: '5人',

},

]

},

{

key: '2',

title: '餐饮酒店/收银员',

number: '无门店,共5人',

time: '2020.06.06 11:35',

childData: [

{

key: '2.1',

jobTitle: '大桶大足浴',

num: '0人',

},

{

key: '2.2',

jobTitle: '大桶大足浴',

num: '1人',

},

]

},

]

const parentColumns: any = [

{

title: '工种',

dataIndex: 'title',

key: 'title',

},

{

title: '关联门店数',

dataIndex: 'number',

key: 'number',

},

{

title: '时间',

dataIndex: 'time',

key: 'time',

},

]

const expandedRowRender = (record: any, index: any, indent: any, expanded: any) => {

const childData = record.childData

const childColumns: any = [

{

title: '岗位名称',

dataIndex: 'jobTitle',

key: 'jobTitle'

},

{

title: '招聘人数',

dataIndex: 'num',

key: 'num'

},

]

return

}

return (

);

}

四、开始配置rowSelection

1、配置父子Table的rowSelection

const childRowSelection = {

selectedRowKeys: childSelectedRowKeys,

onSelect: onChildSelectChange,

onSelectAll: onChildSelectAll

}

const parentRowSelection = {

selectedRowKeys: parentSelectedRowKeys,

onSelect: onParentSelectChange,

onSelectAll: onParentSelectAll,

}

2、创建childSelectedRowKeys,parentSelectedRowKeys变量,用来存放父子Table选中的key值

const [parentSelectedRowKeys, setP

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值