ag-grid表格基本使用方法-React版本

2023-10-27

AG表格基本用法及Api

  1. 在要使用的项目中,首次使用需要引入相关组件包(注:项目中所有组件都是封装之后的)。引入方式如下:import {Table} from 'pkg/common/table'

  2. 引入完成后,在view层需要用到表格的地方直接放入标签。如:<Table .../>

  3. AG表格使用中,需要用到最基础的两个属于:列规则columnDefs,数据源rowData。两个属性接受参数类型均为数组类型,其中列规则的使用方式比较多变。

  4. 官方文档:ag-Grid

    示例:

        columnDefs=[
            {
                headerName: '', // 表头显示名称
                field: '', // 列索引(rowData对应显示的数据)
            },
        ]
    

    示例:

            <Table
                columnDefs={this.columnDefs}
                rowData={[rowData]}
            />
    

列规则

列规则在AG表格中的使用非常复杂,在列规则中,常常会引入其他组件到AG表格中(其他组件操作在其他文档中),会出现三个新的属性,cellEditorcellEditorFrameworkcellEditorParams,其中cellEditorcellEditorFramework任选其一

  • cellEditor:string在列规则中,引入其他组件的组件名称

  • cellEditorFramework:ReactComponent在列规则中,引入其他组件的组件名称

  • cellEditorParams是引入的其他组件所需要用到的参数

    示例:

        columnDefs=[
            {
                headerName: '', // 表头显示名称
                field: '', // 列索引(rowData对应显示的数据)
                cellEditorFramework: Input, // 引入组件名
                cellEditorParams: { // 引入的组件所需的参数
                    value: '',
                },
            },
        ]
    
    在使用上述规则时,请使用editable回调函数打开编辑模式
    部分表格API可以单独使用在列规则中
        columnDefs=[
            {
                headerName: '', // 表头显示名称
                field: '', // 列索引(rowData对应显示的数据)
                editable: true,
                cellEditorFramework: Input, // 引入组件名
                cellEditorParams: { // 引入的组件所需的参数
                    value: '',
                },
            },
        ]
    

其余常用列规则API

  • 表头提示文本 — headerTooltip: string

  • 列提示文本 — tooltipField: 列规则的field


表格API获取

AG表格有一套单独的API供其使用,实现表格数据的增删改等操作。一个view层可能会同时出现使用多个表格的情况,这时就需要将每个表格的API获取出来分别保存,以避免冲突,有几个表格就存几个API。

  • onGridReady — 表格渲染成功时触发事件

通过onGridReady方法,获取当前表格的API和其他信息。此方法会接到一个默认参数,里边包含AG所有的API。

示例:

    let agApi
    
    /* 调用方法获取API **/
    getApi = (params) => {
        agApi = params.api
    }
    
     <Table
        columnDefs={this.columnDefs}
        rowData={[rowData]}
        onGridReady={this.getApi}
    />
其余常用表格API
  • 开启单元格选中 — suppressCellSelection={false}

  • 焦点离开关闭编辑模式 — stopEditingWhenGridLosesFocus={true}

  • 关闭拖动列到表格外删除列 — suppressDragLeaveHidesColumns={true}

  • 关闭拖动换列 — suppressMovableColumns={true}

  • 单点击启动编辑加载组件 — singleClickEdit={true}


表格事件

AG表格向用户提供了大量的可操作事件,一般的,操作事件中都会带有一个默认参数params,这个params中包含了当前使用的事件能得到的所有数据,这就大大的方便了开发人员对于表格的操作。

例如:单击一行时,想获取当前单击行的某些数据时,就可以从方法里的默认参数直接取到。

示例:

click = (params) => {
    console.log(params);  // params参数包含事件能得到的所有数据
}

<Table
    rowData={rowData}
    columnDefs={columnDefs}
    onRowClicked={this.click} /*单击行事件
/>
几乎一半以上的事件都可以直接拿到params这个默认参数
常用的表格事件
onCellClick --- 单击单元格事件

onCellDoubleClicked --- 双击单元格

onRowClicked --- 单击行

onRowDoubleClicked --- 双击行

onCellContextMenu --- 右键事件

onRowSelected --- 行选中事件
......

表格更新数据

AG表格在React使用中,通常会遇到更新state后表格数据没变化或者没有显示,因为AG和state分成了两个独立的块,并不会像普通页面一样state改变后,页面就会跟着发生改变。意思就是state和AG是两个独立的块(这种现象只在本项目里生效,项目里进行了封装),所有我们在改变state的同时,需要对AG也进行改变,那么AG也会有相应的API作为对自身的操作。

对AG进行操作,首先我们要了解它的表格数据模型。在官方文档中,没有特别明确表格怎么去看,但是给出的API却有针对性。下边是文档作者对于AG的理解:AG根据操作需求可以分成四个类型去看,分别是 — 整张表格(所有行,所有列),行,列,单元格。那么API也对这4种模式有相应的操作。

下面会列出常用的AG用到的操作,其余可以去官方文档里查看。

更新整张表格数据

使用AG时,经常会把请求到的后台数据放在AG表格中,但是state放在rowData里不管如何改变页面上都不会有任何的呈现此时我们就要调用刷新表格数据的API,setAllRowData([rowData]),替换行节点上的数据。完成后,网格将刷新整个呈现的行。(更新所有行的Api在项目中进行了一次封装,原生APIsetRowData([rowData]),更多详情请查阅官方文档)。

示例:

this.agApi.setAllRowData([rowData])
AG表格基础操作

在AG中,官方文档给出一个API,专门用来更新行数据 — updateRowData,只需掌握以下用法就基本满足正常业务需求了。首先我们要了解updateRowData,这个API接受的是一个对象,对象里传入的分别是你当前需要进行的操作,并把操作更新到AG表格上,常用的操作,如下

  • 新增

    示例:

    this.agApi.updateRowData({ add: newItems })
    
  • 插入

    示例:

    this.agApi.updateRowData({ add: newItems, addIndex: index })
    
  • 新增(插入)多条

    示例:

    this.agApi.updateRowData({ add: [newItems], addIndex: index })
    
  • 删除

    示例:

    this.agApi.updateRowData({ remove: selectRow })
    
  • 更新

    示例:

    this.agApi.updateRowData({ update: itemsToUpdate })
    

以上是AG表格的基本操作,AG表格本身集成了许多方便好用的API,在进行基础操作时,搭配起来使用,效率更高。

常用的API
this.agApi.getSelectedNodes() // 获取所有所选行的行数据,返回一个数组对象

this.agApi.getSelectedRows() // 获取所有所选行的数据,返回一个数组对象

this.agApi.stopEditing() // 停止所有行编辑

this.agApi.sizeColumnsToFit() // 每列自适应宽度

this.agApi.forEachNode(callback) // 针对表格的遍历,返回回调

...selectAll() // 选择所有行

...deselectAll() // 清除所有选择行

......

更多详细API,请查阅官方文档

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

ag-grid表格基本使用方法-React版本 的相关文章

随机推荐

  • Python的随机矩阵生成

    导入模块 random模块 numpy中的random函数 python中有两个模块可以生成随机数 该博客以的numpy模块为例进行生成随机数 因为矩阵要生成大量的随机数据 故推荐使用numpy模块生成随机数 生成随机数 以矩阵为例 生成随
  • 将未经安全技术处理的计算机,4322【标准答案】单选题 1. 将未经安全技术处理的退出使用的涉密计算机、涉密存储设备____或者改作其他用途的。依法给予处分;构成犯罪的,依法追究刑事责任。 A: 赠送...

    lt gt 标准答案 单选题 1 将未经安全技术处理的退出使用的涉密计算机 涉密存储设备 或者改作其他用途的 依法给予处分 构成犯罪的 依法追究刑事责任 A 赠送 B 出售 C 丢弃 D 以上都是 习题 单选题 1 将未经安全技术处理的退出
  • vscode里面配置Git默认终端

    文章目录 前言 一 为什么VsCode的终端默认文件选择项里面会没有Git的终端配置 二 配置默认Git终端 1 打开settings json文件 2 将配置找到 小编亲测 3 找到Git路径 4 结果 总结 废话很多 看完就对能行 前言
  • OpenCV-Python绑定如何工作及如何扩展新模块到Python

    OpenCV Python绑定如何工作及如何扩展新模块到Python 1 OpenCV Python 绑定的基本版本 2 如何将OpenCV的新模块扩展到 Python 参考 这篇博客将介绍 OpenCV Python 绑定是如何生成的以及
  • 127.0.0.1拒绝了我们的连接请求

    问题描述 浏览器打不开127 0 0 1 显示拒绝连接 试着ping了一下 需要指明一点 1是ipv6的地址 但正常localhost应该指向127 0 0 1 使用Windows自带的网络诊断工具 出现了 127 0 0 1未设置为接受端
  • 【毕业设计】便携式STM32的红外信号分析仪 - 单片机 物联网 嵌入式

    文章目录 0 前言 1 简介 2 主要器件 3 实现效果 4 设计原理 5 部分核心代码 5 最后 0 前言 这两年开始毕业设计和毕业答辩的要求和难度不断提升 传统的毕设题目缺少创新和亮点 往往达不到毕业答辩的要求 这两年不断有学弟学妹告诉
  • C#开发之——GetType方法(6.5)

    一 概述 C 中GetType方法用于获取当前实例的类型 返回值为System Type类型 C 中GetType方法不含有任何参数 是非静态方法 使用任何对象都能直接调用该方法 二 实例 创建字符串类型的变量 整数类型的变量以及Stude
  • 傻瓜式3分钟理解:工厂模式(简单工厂+工厂方法+抽象工厂)

    一 给我一句话概括 简单工厂 工厂类中 根据条件决定一个接口由哪个具体产品类来实现 工厂方法 创建多个工厂类 各个工厂类中 都对应一个获得接口A实例的方法 用户决定使用哪个工厂 抽象工厂 对工厂方法进行扩展 各个工厂类中 再增加一个获得接口
  • 移位运算

    div class markdown views div
  • python中dict数据转DataFrame,pandas实现类似sql查询语句

    目的 将一组dict字典数据转为pandas的DataFrame格式 然后用pandas实现类似sql语句中select from xxx where condition的功能 一 python中将dict格式数据转为DataFrame格式
  • 4.4.2 中文标点符号验证

    英文标点符号比较多 如 逗号 点号 问号 冒号 分号 单引号 感叹号 双引号 连接号 破折号 省略号 小括号 中括号 大括号 顿号 书名号等 以下正则表达式能够验证英文标点符号 2 64 正则表达式 64 解释 匹配 符号 2 匹配破折号
  • Java 添加背景图片

    import java awt import javax swing public class TestBackgroundColor extends JFrame public static void main String args T
  • IF语句例题(一)

    石头剪刀布 需求 1 从控制台输入要出的拳 石头 1 剪刀 2 布 3 2 电脑随机出拳 先假定电脑会出石头 完成代码功能 3 比较正负 解题 首先我们先会议一些input函数 在input函数中内部都是字符串 所以说要把字符串变成整数 p
  • k8s安全管理:认证、授权、准入控制概述

    概述信息 k8s对我们整个系统的认证 授权 访问控制做了精密的设置 对于k8s集群来说 apiserver是整个集群访问控制的唯一入口 我们在k8s集群之上部署应用程序的时候 也可以通过宿主机的NodePort暴露的端口访问里面的程序 用户
  • linux备份工具

    这本阿里P8撰写的算法笔记 再次推荐给大家 身边不少朋友学完这本书最后加入大厂 Github 疯传 史上最强悍 阿里大佬 LeetCode刷题手册 开放下载了 经常备份计算机上的数据是个好的做法 它可以手动完成 也可以设置成自动执行 许多备
  • Java____西财大图书管理系统 代码实现

    西财大图书管理项目代码 book类 1 book 2 bookist operation类 1 AddOperation 2 BorrowOperation 3 DisplayOperation 4 FindOperation 5 Remo
  • 信号与系统matlab心得体会,实验五 Matlab在信号与系统分析中的应用

    实验五Matlab在信号与系统分析中的应用 08电子 3 班E08610308 陈建能 一 实验目的 1 学会用MATLAB进行Laplace正 反变换及Z正 反变换 2 掌握利用MATLAB画出系统的幅频响应 相频响应的方法 3 掌握利用
  • 【C语言】N 阶矩阵的转置

    非主对角线元素的调换 只需要将蓝色虚线左边的元素进行调换 include
  • u盘装系统

    1 用ultraiso将ios写入u盘 2 U盘插入电脑 3 开机狂按某键进入 boot启动页面 4 选择该u盘 enter回车确认安装
  • ag-grid表格基本使用方法-React版本

    AG表格基本用法及Api 在要使用的项目中 首次使用需要引入相关组件包 注 项目中所有组件都是封装之后的 引入方式如下 import Table from pkg common table 引入完成后 在view层需要用到表格的地方直接放入