AntDesign——TableAPI学习

news2024/9/29 9:27:33

table表格用于展示数据

https://ant.design/components/table-cn#table

1.bordered

false不显示每一个小表格的边框,true反之

2.columns 列名及列数据,接受columns数组

2.1 colums中必须声明的属性

title(列标题)

dataIndex(列数据在数据项中对应的路径,支持通过数组查询嵌套路径)

key(React 需要的 key,如果已经设置了唯一的 dataIndex,可以忽略这个属性)

2.2 其他

align:对齐方式

className:列样式类名(自定义列样式?)

colSpan:正常是一列一列数据对应,传入数字能够让一列对应几列数据,但是后面的列数据会因此移动

dataIndex

const dataSource = [ 
  { 
    id: 1, 
    name: 'John', 
    age: 28, 
    address: { 
      city: 'New York', 
      country: 'USA' 
    } 
  }, 
  { 
    id: 2, 
    name: 'Mary', 
    age: 25, 
    address: { 
      city: 'Paris', 
      country: 'France' 
    } 
  } 
]; 
<ProTable 
 
  columns={[ 
    { 
      title: '姓名', 
      dataIndex: 'name', 
    }, 
    { 
      title: '年龄', 
      dataIndex: 'age', 
    }, 
    { 
      title: '所在国家', 
      dataIndex: ['address', 'country'], // 设置为一个数组 
 
    }, 
  ]} 
  dataSource={dataSource} 
/> 

defaultFilteredValue:

const dataSource = [ 
  { id: 1, name: "John", age: 28, address: "New York" }, 
  { id: 2, name: "Mary", age: 25, address: "Paris" }, 
  { id: 3, name: "Peter", age: 32, address: "London" }, 
  { id: 4, name: "Tom", age: 21, address: "Sydney" }, 
]; 
<ProTable 
 
  columns={[ 
    { title: "ID", dataIndex: "id" }, 
    { title: "姓名", dataIndex: "name" }, 
    { title: "年龄", dataIndex: "age" }, 
    { title: "地址", dataIndex: "address" }, 
  ]} 
  dataSource={dataSource} 
  defaultFilteredValue={{ 
      age: [">", 25], 
      address: ["=", "London"], 
}} 
/> 

 filterResetToDefaultFilteredValue:点击重置按钮的时候,是否恢复默认筛选值

defaultSortOrder:默认排序顺序 ascend | descend

ellipsis:该属性需要与 width 属性一起使用,以控制文本省略的容器宽度。超过width用省略号表示。

filterDropdown:自定义筛选菜单

<Table 
 
  dataSource={data} 
  columns={[ 
    { 
      title: 'Name', 
      dataIndex: 'name', 
      key: 'name', 
      filterDropdown: ({ setSelectedKeys, selectedKeys, confirm, clearFilters }) => ( 
        <div style={{ padding: 8 }}> 
          <Input 
 
            placeholder="Search name" 
            value={selectedKeys[0]} 
            onChange={(e) => setSelectedKeys(e.target.value ? [e.target.value] : [])} 
            onPressEnter={confirm} 
            style={{ width: 188, marginBottom: 8, display: 'block' }} 
          /> 
          <Button onClick={confirm} size="small" style={{ width: 90, marginRight: 8 }}> 
            Search 
 
          </Button> 
          <Button onClick={clearFilters} size="small" style={{ width: 90 }}> 
            Reset 
 
          </Button> 
        </div> 
      ), 
      onFilter: (value, record) => record.name.toLowerCase().includes(value.toLowerCase()), 
      onFilterDropdownVisibleChange: (visible) => { 
        if (visible) { 
          setTimeout(() => searchInputRef.current.select(), 100); 
        } 
      }, 
      render: (text) => <a>{text}</a>, 
    }, 
    { 
      title: 'Age', 
      dataIndex: 'age', 
      key: 'age', 
      sorter: (a, b) => a.age - b.age, 
    }, 
    { 
      title: 'Address', 
      dataIndex: 'address', 
      key: 'address', 
      filters: [ 
        { 
          text: 'London', 
          value: 'London', 
        }, 
        { 
          text: 'New York', 
          value: 'New York', 
        }, 
      ], 
      onFilter: (value, record) => record.address.includes(value), 
    }, 
  ]} 
/> 

 filterDropdownOpen:用于控制自定义筛选菜单是否可见

filtered:筛选后筛选图标是否高亮

filteredValue:筛选的受控属性,外界可用此控制列的筛选状态,值为已筛选的 value 数组

filterIcon: 例:<FilterOutlined />,筛选图标样式

filterMultiple:是否多选

filterMode:指定筛选菜单的用户界面 filterMode: 'tree',树形筛选框

filterSearch:筛选菜单项是否可搜索

filters:text为显示名称,value与onFilter中的value对应。

    filters: [
      {
        text: 'Joe',
        value: 'Joe',
      },
      {
        text: 'Jim',
        value: 'Jim',
      },
      {
        text: 'Submenu',
        value: 'Submenu',
        children: [
          {
            text: 'Green',
            value: 'Green',
          },
          {
            text: 'Black',
            value: 'Black',
          },
        ],
      },

 fixed:列是否固定,可选 true (等效于 left) leftright

render:当表中数据需要操作或者更改样式时,生成复杂数据的渲染函数,参数分别为当前的值,当前数据,索引

1)渲染一个包含三个子项的复杂单元格

<Table dataSource={dataSource}> 
  <Column 
 
    title="姓名" 
    dataIndex="name" 
    key="name" 
  /> 
  <Column 
 
    title="成绩" 
    key="score" 
    render={(text, record) => ( 
      <div> 
        <div>语文:{record.score.chinese}</div> 
        <div>数学:{record.score.math}</div> 
        <div>英语:{record.score.english}</div> 
      </div> 
    )} 
  /> 
</Table> 

 2)在单元格中增加样式

<Table dataSource={dataSource}>  
  <Column  
    title="Name"  
    dataIndex="name"  
    key="name"  
    render={(text, record) => (  
      <span style={{ color: record.isMale ? 'blue' : 'pink' }}>{record.name}</span>  
    )}  
  />  
  <Column  
    title="Age"  
    dataIndex="age"  
    key="age"  
  />  
</Table>  

 responsive:响应式 breakpoint 配置列表。未设置则始终可见。响应式设计(Responsive Design)是指网站或应用程序设计的一种方法,它可以让网站或应用程序根据不同的设备和屏幕尺寸自动调整布局和内容,以提供最佳的用户体验。简单来说,响应式设计就是一个网站或应用程序可以适配不同的设备,包括桌面电脑、平板电脑和手机等。

const columns = [ 
  { 
    title: 'Name', 
    dataIndex: 'name', 
    key: 'name', 
    responsive: ['md'], 
  }, 
  { 
    title: 'Age', 
    dataIndex: 'age', 
    key: 'age', 
    responsive: ['lg'], 
  }, 
  { 
    title: 'Address', 
    dataIndex: 'address', 
    key: 'address', 
    responsive: ['xl'], 
  }, 
] 

 我们在列定义中使用了responsive属性,并传入一个数组,表示该列应该在何种设备大小下显示。在本例中,Name列在medium设备大小及以上的屏幕上显示,Age列在large设备大小及以上的屏幕上显示,Address列在extra-large设备大小及以上的屏幕上显示。

rowScope:设置列范围row | rowgroup

shouldCellUpdate自定义单元格渲染时机

  { 
    title: 'Address', 
    dataIndex: 'address', 
    key: 'address', 
    sorter: (a, b) => a.address.localeCompare(b.address), 
    showSorterTooltip: true, // 显示排序提示 
 
    // 自定义提示信息的样式和内容 
 
    titleTooltip: () => ( 
      <span> 
        This is the address column, it can be sorted by clicking the column header. 
      </span> 
    ), 

sortDirections、sorter、sortOrder(外部组件影响排序)排序

onCell是Ant Design组件中Table表格的一个属性,用于自定义每个单元格(Cell)的属性和事件处理函数。
onCell接受一个函数参数,该函数需要返回一个包含对应单元格属性和事件处理函数的对象。该对象中通常包含一些标准的HTML和React事件处理函数,例如onClick、onMouseEnter等。
使用onCell,可以自定义每个单元格的属性和事件处理函数,从而实现一些复杂的交互效果。

    onCell: eventData => ({  
      onClick: () => {  
        console.log(`Clicked name cell: ${eventData.record.name}`);  
      },  
    }), 

 onFilter: (value, record) => record['project_version'].includes(value)

rowSelection:列选择

 rowSelection={{ type: selectionType, ...rowSelection, }}

multiple:列升序降序的优先级,数值越大优先级越高

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/636757.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

为什么会被扣小红书品牌违规分,原因是什么

小红书在2022年经过一次较大点的规则变动&#xff0c;其中小红书品牌违规分就是其中亮点名词之一。很多人对此都不甚了解&#xff0c;今天为大家分享下为什么会被扣小红书品牌违规分&#xff0c;原因是什么&#xff1f; 一、什么是品牌违规分 品牌违规分是小红书在2022年4月20日…

工厂模式~

核心本质 ① 实例化对象不使用new&#xff0c;用工厂方法代替 ② 将选择实现类&#xff0c;创建对象统一管理和控制&#xff0c;从而将调用者跟我们的实现类解耦 简单工厂 public interface Car {void name(); }public class Tesla implements Car{Overridepublic void name()…

基于 opencv 的人脸识别上课考勤系统,附源码,可作为毕业设计

一、简介 这个人脸识别考勤签到系统是基于大佬的人脸识别陌生人报警系统二次开发的。 项目使用Python实现&#xff0c;基于OpenCV框架进行人脸识别和摄像头硬件调用&#xff0c;同时也用OpenCV工具包处理图片。交互界面使用pyqt5实现。 该系统实现了从学生信息输入、人脸数据…

ps复制图层警告 (不能从选区建立新图层,因为所选区域是空的。)解决方法

有时我们选完选区 按 CtrlJ 复制图层 会出现这种情况 问题出在你当前选的图层 因为 我选择的这块选区在第二个图层上 但很明显 选择的是一大个图层 简单说 你操作的选区必须在你当前选择的图层上才行 也就是 我现在要将选择区换成第二个图层才行 再按 CtrlJ 图层就出来了

AssetStudio工程导入VS各种报错解决

AssetStudio下载地址&#xff1a;https://github.com/Perfare/AssetStudio 工程导入&#xff0c;生成解决方案&#xff0c;然后报了一堆错。让我们来一个一个的解决 这个错误&#xff0c;是缺少System.Runtime.InteropServices.RuntimeInformation.dll文件&#xff0c;下载并添…

“爱心助考 为梦护航”雷锋志愿者在行动

为确保我市高考、学考工作顺利进行&#xff0c;为考生营造安全温馨的考试环境保驾护航&#xff0c;共青团怀化市委、市教育局、共青团鹤城区委、区教育局联合怀化市青少年关爱协会党支部&#xff0c;开展2023“爱心助考 为梦护航”雷锋志愿者服务活动。 6月7-9日高考三天&#…

开发新项目看过来,这3款基于 Vue 的免费开源的 admin 管理后台框架非常好用

三款 admin 框架&#xff0c;分别基于热门的前端 UI 组件库 ElementPlus / Ant Design / Naive UI 打造&#xff0c;开箱即用。 新项目的开始&#xff0c;一般是搭建 admin 系统&#xff0c;今天盘点一下3个好的选择。 Vue vben admin 了解详细&#xff1a;https://www.thos…

C型标准气动阀线圈插头安装距8mm

8mm针脚距气动阀插头、C型DIN标准电气插头。这些插头通常用于工业自动化、机械控制等领域。 工业标准&#xff0c;C型&#xff0c;DIN43650 / EN175301-803,插针中心距 8mm、3针脚、4针脚&#xff0c;额定电压 250V,工作电流 6A,最大接线 0.75mm2,电缆锁紧口 PG7,电缆外径 4-6…

Beyond Compare 4 无法打开

解决办法&#xff1a; 1.修改注册表。WINR呼出开始菜单&#xff0c;在搜索栏中输入 regedit&#xff0c;点击确定。 2.删除项目&#xff1a;\HKEY_CURRENT_USER\Software\ScooterSoftware\Beyond Compare 4\CacheId 根据这个路径找到cacheid 右击删除掉就可以

Allegro Design Entry CIS导出原理图BOM方法

1.Allegro Design Entry CIS导出原理图BOM方法 Tools->Bill of Materials 填入项分别为&#xff1a; Header:项次\t名称\t位号\t值\t封装\t数量 Combined property string: {Item}\t{PartName}\t{Reference}\t{Value}\t{PCB footprint}\t{Quantity} 点击OK生成如下表格

服务架构的进化之路:探索服务架构的演进之路

1、引言 服务架构是一种以服务为中心的软件设计模式&#xff0c;将应用程序拆分为一组小而自治的服务单元。随着互联网和信息技术的快速发展&#xff0c;软件系统变得越来越复杂。为了应对这种变化&#xff0c;服务架构也在不断地演变和发展。本文将简要介绍服务架构的发展史&…

基于BG/NBD概率模型的用户CLV预测

基于BG/NBD概率模型的用户CLV预测 小P&#xff1a;小H&#xff0c;我们最近想预测下用户的生命周期价值&#xff0c;有没有什么好的方法啊&#xff1f; 小H&#xff1a;简单啊&#xff0c; C L V 用户每月平均花费 ∗ 用户平均寿命 CLV用户每月平均花费*用户平均寿命 CLV用户每…

Masked Autoencoders As Spatiotemporal Learners

Masked Autoencoders As Spatiotemporal Learners 文章目录 Masked Autoencoders As Spatiotemporal Learners一、文章背景二、文章变量1 mask sampling 方式2 Mask ratio3 其余的ablation studies 一、文章背景 用于视频中的时间信息学习。 基本思想是重构&#xff0c;使用的…

bilibili记录

霹雳吧啦Wz的个人空间-霹雳吧啦Wz个人主页-哔哩哔哩视频 目标检测篇github地址&#xff1b;GitHub - WZMIAOMIAO/deep-learning-for-image-processing: deep learning for image processing including classification and object-detection etc.

mapbox分屏地图同步缩放拖拽旋转

成果图 之前写过一版&#xff0c;后来又经过一些优化&#xff0c;形成了现在的最终版本&#xff0c;之前是二维的&#xff0c;现在是三维的也可以了&#xff0c;地址在这儿 https://blog.csdn.net/Sakura1998gis/article/details/113175905 实现 监听动作 // 拖拽同步map.on(d…

pm3包1.8版本发布----一个用于3组倾向性评分的R包

目前&#xff0c;本人写的第二个R包pm3包的1.8版本已经正式在CRAN上线&#xff0c;用于3组倾向评分匹配&#xff0c;只能3组不能多也不能少。 可以使用以下代码安装 install.packages("pm3")什么是倾向性评分匹配&#xff1f;倾向评分匹配&#xff08;Propensity Sc…

经常被问道的这些类,佬们能够吊打面试官嘛(适合秋招和小白系列)?

前言&#xff1a; 本篇文章主要讲解Java中的几个类常被问到的面试题相关知识。该专栏比较适合刚入坑Java的小白以及准备秋招的大佬阅读。 如果文章有什么需要改进的地方欢迎大佬提出&#xff0c;对大佬有帮助希望可以支持下哦~ 小威在此先感谢各位小伙伴儿了&#x1f601; 以…

宏病毒组研究大放异彩!| 凌恩生物1-5月高分宏病毒组文章大盘点!

凌恩生物现已在宏组学、基因组、表观遗传以及蛋白代谢等多组学及联合分析领域积累了深厚经验&#xff0c;打造出成熟的科研服务平台&#xff0c;以优质售前方案和优秀售后服务助力客户在Nature、Science、PNAS、ISME和MIcrobiome等高端国际期刊上发表了大量文章。 伴随着组学技…

【DevOps】Python+Golang(一)

Python is和的区别 is检查两个对象是否是同一个对象&#xff0c;即它们的内存地址是否相同。如果是同一个对象&#xff0c;则返回True&#xff0c;否则返回False。 检查两个对象是否相等&#xff0c;即它们的值是否相同。如果值相同&#xff0c;则返回True&#xff0c;否则返回…

Maven-基础

Maven Maven是专门用于管理和构建Java项目的工具&#xff0c;主要功能有&#xff1a; 提供了一套标准化的项目结构 Maven提供了一套标准化的项目结构&#xff0c;所有的IDE使用Maven构建的项目完全一样 提供了一套标准化的构建流程&#xff08;编译&#xff0c;测试&#xff0c…