美文网首页
antd 表格嵌套获取下标索引

antd 表格嵌套获取下标索引

作者: 头发飘逸 | 来源:发表于2021-10-12 23:26 被阅读0次

背景:

项目开发种有这么一个需求,需要进行表格嵌套进行数据操作,翻阅文档在antd上倒是有这样的例子,但是二级表格数据信息操作都是一模一样的,文档也没有说明如何在操作二级表格的时候如何获取到当前的一级表格行。

情况:

在操作二级表格的时候,肯定是需要知道当前一级表格的行下标索引,不然根本不知道操作的是那一行

解决:

经过一下午的折腾,总算是实现了,下面写了个简单的demo例子。不管业务怎么复杂,但核心点无非就是如何获取到当前的行下标,以及上一级的下标

例子:

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

const Index = ()=>{
    // 表格数据
    const [dataSource, setDataSource] = useState<any>([
        {
            key:'0',
            name:'张三',
            sex:'男',
            createdAt:'2021-10-12',
            childrens:[
                {
                    key:'0-0',
                    name:'李白',
                    occupation: '打野',
                    aphorism:'但愿长醉不复醒'
                }
            ],
        }
    ]);

    // 创建一个变量用于存储当前一级行下标(用于嵌套二级表格获取下标)
    let indexZ = 0;

    // 定义一级表格头
    const columns = [
        { title: '姓名', dataIndex: 'name', key: 'name' },
        { title: '性别', dataIndex: 'sex', key: 'sex' },
        { title: '出生日期', dataIndex: 'createdAt', key: 'createdAt' },
        { title: '操作', key: 'operation', render: (text:any, record:any, index:number) => <a onClick={ tablerowAdd.bind(this, index) }>一级表格行添加</a> },
    ];
    // 定义二级级表格头
    const columns2 = [
        { title: '人物', dataIndex: 'name', key: 'name' },
        { title: '职业', dataIndex: 'occupation', key: 'occupation' },
        { title: '格言', dataIndex: 'aphorism', key: 'aphorism' },
        { title: '操作', key: 'operation', render: (text:any, record:any, index:number) => <a onClick={ tablerowAdd2.bind(this, index) }>二级级表格行添加</a> },
    ];

    /**
     * 一级行添加
     * @param index 行下标
     */
    const tablerowAdd = (index:number)=>{
       let dataArr = [
        {
            key: `${dataSource.length}`,
            name:`张三 ${dataSource.length}`,
            sex:'男',
            createdAt:'2021-10-12',
            childrens:[
                {
                    key:`${dataSource.length}-${dataSource[index].childrens.length}`,
                    name: `李白`,
                    occupation: '打野',
                    aphorism:'但愿长醉不复醒'
                }
            ],
        }
       ];
       
       setDataSource([...dataSource, ...dataArr]);
    }

    /**
     * 二级行添加
     * @param index 二级下标行
     */
    const tablerowAdd2 = (index:number)=>{
        setTimeout(()=>{
            let dataArr = JSON.parse(JSON.stringify(dataSource));
            dataArr[indexZ].childrens.push(
                {
                    key:`${dataSource.length}-${dataSource[indexZ].childrens.length}`,
                    name: `李白${dataSource[indexZ].childrens.length}`,
                    occupation: '打野',
                    aphorism:'但愿长醉不复醒'
                }
            );
            setDataSource(dataArr);
        })
    }

    // 自定义表格额外的展开行
    const expandedRowRender = (record:any,index:any,)=>{
        // 在这个的覅添加个标签按钮 获取当前行下标(二级列表行)
        return <div onClick={()=> indexZ = index }>
            <Table 
                columns={columns2} 
                rowKey={(record:any)=> record.key}
                dataSource={record.childrens} 
                pagination={false} 
            />
        </div>
    }
    
    return (
        <Table
            className="components-table-demo-nested"
            columns={columns}
            pagination={false}
            dataSource={dataSource}
            rowKey={(record:any)=> record.key}
            expandedRowRender = { (record,index) => expandedRowRender(record, index)  }
        />
    );
}
export default Index;

复制上面的例子,跑一下就可以


image.png

相关文章

  • antd 表格嵌套获取下标索引

    背景: 项目开发种有这么一个需求,需要进行表格嵌套进行数据操作,翻阅文档在antd上倒是有这样的例子,但是二级表格...

  • Vue Element 笔记

    表格获取index 下面2种方法获取:序号 type="index"、下标scope.$index 修改表格行高 ...

  • 2.索引

    索引 1.双下标索引 2.单下标索引 3.双下标索引转换为单下标索引单下标索引=sub2ind(size,m,n)...

  • UIWebView嵌套UIScrollView 获取webVei

    UIWebView嵌套UIScrollView 获取webVeiw页面高度 因为webView里面有 图片和表格 ...

  • 获取树形结构的下标转换为数据

    工作中用到了树形结构,从antd库上直接拿到的树形结构写好的形式是获取到当前选中的下标。可是后端并不识别下标,所以...

  • 窥探Swift之数组安全索引与数组切片

    在Swift中的数组和字典中下标是非常常见的,数组可以通过索引下标进行元素的查询,字典可以通过键下标来获取相应的值...

  • Swift - 下标

    下标 下标可以定义在类、结构体和枚举中,是访问集合、列表或序列中元素的快捷方式。可以使用下标的索引,设置和获取值,...

  • Swift 字符串索引访问和修改字符串

    字符串索引 注意,在 Swift 中,字符串的下标并不是 Int 类型,所以不能用 1234 这样的下标来进行获取...

  • 下标 索引

    下标索引 所谓“下标”,就是编号,就好比超市中的存储柜的编号,通过这个编号就能找到相应的存储空间字符串中‘下标’的...

  • Numpy学习笔记4-基本操作与运算

    基本操作 1. 索引 通过下标获取,先行后列 2. 形状修改 ndarray.reshape(shap,[, or...

网友评论

      本文标题:antd 表格嵌套获取下标索引

      本文链接:https://www.haomeiwen.com/subject/eazjoltx.html