react中antd Table表格的行列合并,常用的方法和遇到的问题

本文详细介绍了在React应用中使用Ant Design的Table组件进行行列合并的方法,包括注意事项、列合并的实现(通过colSpan调整)以及行合并的实现(通过rowSpan调整),并针对可能出现的溢出问题提供了解决方案。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1,注意事项

表头只支持列合并,使用 column 里的 colSpan 进行设置。

表格支持行/列合并,使用 render 里的单元格属性 colSpan 或者 rowSpan 设值为 0 时,设置的表格不会渲染。

2,表格的列合并

1,效果图:

在第十行,将前两列合并

2,实现方法:

在columns属性中render方法中设置

const columns = [

            {

                title: '商品名称',

                dataIndex: 'commodityName',

                key: 'commodityName',

                render: (text, row, index) => {

                    if (index != 9) {

                        return text

                    } else {

                        return {

                            children:<b>{text}</b>,

                            props:{colSpan:2}

                        }

                    }

                }

            },

这段代码的意思就是:前9行正常输出,在第十行 colSpan:2,合并2列。

这样之后并没有完成,看一下效果图:

这样就溢出了一列,解决方法:上面将第十行的第一列占了两列,所有就要将原本的第十行的第二列设置不显示。

{

                title: '规格',

                dataIndex: 'type',

                key: 'type',

                render: (text, row, index) => {

                   

                    if (index != 9) {

                        return text

                    } else {

                        return {

                            children:text,

                            props:{colSpan:0}

                        }

                    }

                }

            },

这样就达到了我们想要的结果

3,表格的行合并

1,效果图

2,实现方法

和列的合并一样只是要把colSpan改为rowSpan,将第八行的商品编码合并到第九行,设置第八行的 rowSpan为2时候,还要设置第九行的rowSpan为0,不然第九行也会有溢出

columns = [

            {

                title: '商品编码',

                dataIndex: 'commodityNo',

                key: 'commodityNo',

                render:(text,row,index)=>{

                    if(index ===7){

                        return {

                            children:text,

                            props:{rowSpan:2}

                        }

                    }else if(index===8){

                        return {

                            props:{rowSpan:0}

                        }

                    }

                }

            },

评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Zeng__Y1

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值