ag-Grid的基本用法一(表格列的定义)

2023-10-30

         最近在研究基于angular2+的表格的用法,发现一种非常好用的表格,就是ag-grid,ag-grid不仅对angular1.x有支持,还支持react,vue等目前主流的前端框架,这里我们只是对angular2+中的ag-grid进行讲解,这个表格继承了angular1.x中ui-grid的一些优点,并补全了ui-grid的一些缺点,总体来说是一个非常棒的表格。第一节主要讲解表格列的定义,

但是我们需要从一开始如何引用ag-Grid开始讲解,以便于大家理解如何使用ag-Grid,大家对讲解有不明白的地方可以去查看表格列的定义的相关官方API

        1.如何引入ag-Grid.

            首先我们需要更新ag-Grid的相关依赖,具体如下:

	npm install ag-grid --save
	npm install ag-grid-angular --save
 其次我们在app.module.ts中引入ag-grid-angular/main,并在imports中注入AgGridModule.withComponents(),具体如下:

import {AgGridModule} from 'ag-grid-angular/main';
@NgModule({
  imports: [
    AgGridModule.withComponents()
  ],
})
2.创建GridComponent组件,可以使用命令 ng g c grid来创建,但是前提必须安装得有angular-cli(如何安装自行查询),然后在app.module.ts中引入GridComponent,并在declarations中注入GridComponent,具体如下:
import {GridComponent} from './grid/grid.component';
@NgModule({
  declarations: [
    GridComponent
  ],
})
      3.进入到grid-component.ts中,引入相关依赖,声明定义表格gridOptions,在构造器中定义表格列,定义一些列的属性,具体如下:

import {Component} from '@angular/core';
import {GridOptions} from 'ag-grid';

@Component({
  selector: 'app-grid',
  templateUrl: './grid.component.html',
  styleUrls: ['./grid.component.css']
})
export class GridComponent {
  private gridOptions: GridOptions;

  constructor() {
    this.gridOptions = <GridOptions>{
      enableFilter : true,
    };
    this.gridOptions.columnDefs = [
      {
        headerName: 'ID',
        field: 'id',
        width: 50,
        pinned: 'left',
        type: 'numberColumn'
      },
      {
        headerName: 'Name',
        field: 'name',
        filter: 'text',
        width: 100,
      },
      {
        headerName: 'Sex',
        field: 'sex',
        filter: 'text',
        width: 50,
      },
      {
        headerName: 'Age',
        field: 'age',
        filter: 'text',
        width: 50,
        children: [
          {headerName: 'Birthday', field: 'birthday', columnGroupShow: 'closed', type: ['dateColumn', 'nonEditableColumn']},
          {headerName: 'Silver', field: 'silver', columnGroupShow: 'closed'},
          {headerName: 'Gold', field: 'bronze', columnGroupShow: 'open'},
          {headerName: 'Constellation', field: 'constellation', columnGroupShow: 'open'}
        ]
      },
      {
        headerName: 'Tele',
        field: 'tele',
        filter: 'text',
        width: 200,
        editable: true,
      },
      {
        headerName: 'Address',
        field: 'address',
        filter: 'text',
        width: 500,
        editable: true,
        pinned: 'right'
      }

    ];
    this.gridOptions.rowData = [
      {id: 1, name: '张三', sex: '', age: '20', birthday: '1993-05-20', tele: '13564569874', address: '海淀区农大南路'},
      {id: 2, name: '李四', sex: '', age: '40', birthday: '1992-08-18', tele: '15647893214', address: '丰台区'},
      {id: 3, name: '小明', sex: '', age: '20', birthday: '2011-02-01', tele: '17788770858', address: '哈尔滨市南岗区'},
      {id: 4, name: '晓红', sex: '', age: '25', birthday: '1978-11-20', tele: '18945620145', address: '北京西路的日子'},
      {id: 5, name: '老王', sex: '', age: '30', birthday: '1997-07-08', tele: '13645713276', address: '中关村软件园'},
      {id: 6, name: '柜子', sex: '', age: '35', birthday: '1999-03-15', tele: '18745016324', address: '海淀区后厂村路'},
    ]
    this.gridOptions.columnTypes = {
      'numberColumn': {width: 83, filter: 'number'},
      'medalColumn': {width: 100, columnGroupShow: 'open', suppressFilter: true},
      'nonEditableColumn': {editable: false},
      'dateColumn': {
        // specify we want to use the date filter
        filter: 'date',
        filterParams: {
          // provide comparator function
          comparator: function (filterLocalDateAtMidnight, cellValue) {

            // In the example application, dates are stored as dd/mm/yyyy
            // We create a Date object for comparison against the filter date
            const dateParts = cellValue.split('-');
            const day = Number(dateParts[2]);
            const month = Number(dateParts[1]) - 1;
            const year = Number(dateParts[0]);
            const cellDate = new Date(year, month, day );
            // Now that both parameters are Date objects, we can compare
            if (cellDate < filterLocalDateAtMidnight) {
              return -1;
            } else if (cellDate > filterLocalDateAtMidnight) {
              return 1;
            } else {
              return 0;
            }
          }
        }
      }
    };
  }
}

        在这里我们对列的一些属性进行解释,gridOptions的columnDefs属性是定义表格列的,其中headerName是定义表格列的表头名称,field是定义要显示的数据的字段名,filter是过滤的类型,width是表格列宽度,editable是定义列是否可编辑(前提是gridOptions表格必须是可编辑的,这个字段才有效,如果不定义该字段,则默认该列不能编辑),pinned是固定列的,有三个值(left,null,right),默认为null,一般我们只需要固定最左边的一列和最右边的一列,children表示该列的子列,子列的属性跟父列的一样,但是还有一个columnGroupShow属性,这是用来设置子列的打开和关闭,只要子类中的cilumnGroupShow的值有不一样的时候,父表头的右边会有一个展开的按钮(‘+’),type是定义列的类型,除了有内置的‘number’,'string'等类型之外,还可以自定义类型,自定义的类型必须包含在gridOptions的columnTypes中,如果需要使用多个类型,需要用中括号括起来,这是常用的一些属性的解释,接下来咱们看下html页面如何使用该表格组件

       4.使用GridComponent组件

<ag-grid-angular #agGrid style="width: 100%; height: 500px;" class="ag-fresh"
                 [gridOptions]="gridOptions"
                 [columnDefs]="columnDefs"
                 [showToolPanel]="showToolPanel"
                 [rowData]="rowData"
                  enableColResize
                  enableSorting
                  enableFilter
                  rowHeight="22"
                  rowSelection="multiple">
</ag-grid-angular>
这其中的参数,enableColResize表示能重置表格列宽度,enableFilter,表示支持过滤列,enableSorting表示支持排序。

这就完成了对ag-grid组件的简单使用,一下是截图


具体的代码已上传至github,关于ag-grid表格的更多用法,敬请期待下一节。如有疑问,欢迎在评论区提问。

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

ag-Grid的基本用法一(表格列的定义) 的相关文章

随机推荐

  • Java中捕获异常的灵魂四问

    1 如果try中没有遇到问题 怎么执行 只会执行try中的代码 不会执行catch 2 如果try中会遇到多个问题 我们应该怎么做 如果遇到多个异常 应该写多个catch与之对应 但是注意 catch要捕获的异常如果存在父子关系 那么要把父
  • HX711称重传感器

    HX711 称重传感器专用模拟 数字 A D 转换器芯片 简介 HX711是一款专为高精度称重传感器而设计的24位A D转换器芯片 与同类型其它芯片相比 该芯片集成了包括稳压电源 片内时钟振荡器等其它同类型芯片所需要的外围电路 具有集成度高
  • 解决wsl和vmware冲突问题

    CMD管理员模式启动 输入bcdedit set hypervisorlaunchtype auto开启 则可以使用WSL CMD管理员模式启动 输入bcdedit set hypervisorlaunchtype off关闭 则可以使用V
  • vue-amap 地图定位打卡

    1 注册并登录高德开放平台 1 首先 注册开发者账号 成为高德开放平台开发者 2 登陆之后 在进入 应用管理 页面 创建新应用 3 为应用添加 Key 4 添加成功后 可获取到key值和安全密钥jscode 自2021年12月02日升级 升
  • 71.编写input()和output()函数的输入,输出5个学生的数据记录

    include
  • 使用 EasyExcel 读取和下载 excel 文件

    前言 EasyExcel是阿里巴巴开源的一个excel处理框架 以使用简单 节省内存著称 EasyExcel能大大减少占用内存的主要原因是在解析Excel时没有将文件数据一次性全部加载到内存中 而是从磁盘上一行行读取数据 逐个解析 Easy
  • Java基础(面向对象,继承,抽象类,接口,多态)

    文章目录 JAVA基础 面向对象 笔记整理 JAVA基础 面向对象 笔记整理 面向对象概述 1 面向对象的思想来源生活 2 任何的对象从两个方面描述 静态属性 动态属性 3 创建一个类 其实就创建了一个模板 4 创建了一个类就是创建了一个新
  • AVS、MPEG-2、H.264 标准文档

    几年前 做过一些 AVS H 264 的编解码工作 收集了一点标准文档及开源代码 这些我都分享在前一个博客 http sep blog chinaunix net 由于该博客的文件分享都失效了 因此有不少童鞋找到这里联系上我 为了方便大家
  • vue中配置别名

    在根目录创建名为 jsconfig json 的文件 compilerOptions baseUrl paths src exclude node modules dist
  • 深度解析StringBuilder

    深度解析StringBuilder 基本介绍 1 StringBuilder 是一个可变的字符序列 此类提供一个与StringBuffer兼容的API 但不保证同步 StringBuilder 不是线程安全的 此类被设计用作StringBu
  • stable diffusion实践操作-图片生文字到图片

    本文专门开一节写 文字图片相关的内容 在看之前 可以同步关注 stable diffusion实践操作 正文 1 png 图片提取信息 SD可以从png图片中提取信息 然后在来生成图片 1 1 保存png 到liblib网站 下载png图片
  • IDEA在Web项目部署时没有Artifact选项的解决方法

    1 现象 使用Intellij IDEA配置Web项目时 如下图所示 选择Deployment后点击 没有出现Artifact选项 2 解决方法 1 在Intellij IDEA开发菜单栏中 选择 File gt Project Struc
  • python requests post和get请求,并把结果写入json文件中

    今天在分析网页的时候 发现需要利用requests请求 得到数据 然后这会经常用到 虽然简单 但是容易忘记 所以我这里记录一下我用的python requests的demo文件 post请求 import requests json hea
  • zabbix数据库添加主从同步

    zabbix数据库正常运行的情况下 做mysql主从同步添加从库操作 一 在从库主机上安装mysql 注 版本与主库master一致 1 1 创建用户 groupadd mysql useradd r g mysql mysql 1 2 上
  • 服务器系列和酷睿系列,至强cpu与酷睿两个系列之间有什么区别?

    很多朋友选购英特尔处理器时 会纠结于酷睿与至强两个系列之间就 不知如何选择 标致左酷睿 右至强 酷睿系列CPU如i3 i5 i7是我们一般消费者最为熟悉的 它也是针对大部分家用桌面级消费者开发的中高端处理器 当然也包括低端的G系列的赛扬处理
  • (第一章)嵌入式linux之常用汇编指令

    1 处理器内部数据传输指令 数据传输指令分为 一般寄存器间的数据传输或者 特殊寄存器与一般寄存器间的数据传输 数据传输常用的指令有三个 MOV MRS 和 MSR 用法示例 1 MOV 指令 MOV R0 R1 将寄存器 R1 中的数据传递
  • 基于百度飞桨PaddlePaddle和PARL复现PPO强化学习算法

    文章目录 一 PPO训练效果展示 Mujoco HalfCheetah v2 二 策略优化算法发展回顾 三 PPO 算法论文阅读 1 Introduction 2 Background Policy Optimization 2 1 Pol
  • R语言使用RMySQL连接及读写Mysql数据库

    简单说下安装过程 一般不会有问题 重点是RMySQL的使用方式 系统环境说明 Redhat系统 Linux 460 42 6 32 431 29 2 el6 x86 64 系统编码 LANG zh CN UTF 8 中文UTF 8格式 my
  • Access Token是做什么的

    我们在访问很多大公司的开放 api 的时候 都会发现这些 api 要求传递一个 access token 参数 这个参数是什么呢 需要去哪里获取这个 access token 呢 access token 是在 Oauth2 0 协议中 客
  • ag-Grid的基本用法一(表格列的定义)

    最近在研究基于angular2 的表格的用法 发现一种非常好用的表格 就是ag grid ag grid不仅对angular1 x有支持 还支持react vue等目前主流的前端框架 这里我们只是对angular2 中的ag grid进行讲