界面组件Kendo UI for Angular——让应用数据显示更直观!(二)

news2024/11/28 6:49:24

Kendo UI致力于新的开发,来满足不断变化的需求,通过React框架的Kendo UI JavaScript封装来支持React Javascript框架。Kendo UI for Angular是专用于Angular开发的专业级Angular组件,telerik致力于提供纯粹的高性能Angular UI组件,无需任何jQuery依赖关系。

Kendo UI R3 2022正式版下载(q技术交流:726377843)

Angular Material是Angular团队创建的一个流行库,本文将为大家介绍如何使用mat-table来构建一个数据网格。

在上文中,我们为大家介绍了如何开始使用Angular Material构建一个数据网格(点击这里回顾>>),本文将继续介绍如何进行排序、过滤和分页等。

添加分页

当显示大量数据时,分页是一个很好的功能,为了提供分页,Angular Material提供了mat-paginator。

首先,我们将模块MatPaginatorModule导入到模块中。

import { MatPaginatorModule } from '@angular/material/paginator';

@NgModule({
declarations: [AppComponent],
imports: [
BrowserModule,
BrowserAnimationsModule,
MatTableModule,
MatPaginatorModule,
],

编辑app.component.ts并为分页器ViewChild添加一个新属性,要从模板访问MatPagination,请将代码更新到订阅中,并将MatTableDataSource的一个新示例设置为datasource,该实例使用来自订阅和分页器视图子的数据。

@ViewChild(MatPaginator, { static: true }) paginator!: MatPaginator;
ngOnInit(): void {
this.nbaService.getData().subscribe((data) => {
this.dataSource = new MatTableDataSource<any>(data);
this.dataSource.paginator = this.paginator;
});

}

接下来,更新模板来将表与数据源连接起来,并使用分页选项列表配置表分页器,添加指令showFirstLastButton激活导航按钮从最后移动到第一个。

<table mat-table [dataSource]="dataSource" class="mat-elevation-z8" #mytable>
...
</table>
<mat-paginator [pageSizeOptions]="[3, 5, 10]" showFirstLastButtons></mat-paginator>

添加排序

要允许用户对数据进行排序,请使用MatSort。首先,在app.module中导入MatSortModule。

import { MatSortModule } from '@angular/material/sort';

@NgModule({
declarations: [AppComponent],
imports: [
BrowserModule,
BrowserAnimationsModule,
MatSortModule,
MatTableModule,
MatPaginatorModule,
],
providers: [],
bootstrap: [AppComponent],
})

export class AppModule {}

首先,为分页器添加一个viewchild,将MatSort导入app.component.ts,并声明一个viewchild排序来将其链接到模板。

import { MatSort } from '@angular/material/sort';

@ViewChild(MatSort, { static: true }) sort!: MatSort;

在ngOnInit生命周期中,赋值给数据源排序属性MathSort viewchild。

ngOnInit(): void {
this.nbaService.getData().subscribe((data) => {
this.dataSource = new MatTableDataSource<any>(data);
this.dataSource.paginator = this.paginator;
this.dataSource.sort = this.sort;
});
}

编辑app.component.html,将matSort指令添加到表中,并为每一列添加mat-sort标题。

<table mat-table [dataSource]="dataSource" class="mat-elevation-z8" #mytable matSort>
<tr mat-header-row *matHeaderRowDef="columns" ></tr>
<tr mat-row *matRowDef="let row; columns: columns;"></tr>
<ng-container matColumnDef="name">
<th mat-header-cell *matHeaderCellDef mat-sort-header>Name</th>
<td mat-cell *matCellDef="let t">{{ t.first_name }}</td>
</ng-container>

<ng-container matColumnDef="team">
<th mat-header-cell *matHeaderCellDef mat-sort-header>Position</th>
<td mat-cell *matCellDef="let t">{{ t.position }}</td>
</ng-container>
</table>

添加过滤

Angular Material现在并没有附带特定的组件或过滤器指令,为了解决这个问题,必须手动实现数据过滤。

我们定义了一个名为filter的方法,每当用户在mat-input控件中输入或删除一个字符时,都会执行该方法:

filter(event: Event) {
const filter = (event.target as HTMLInputElement).value;
this.dataSource.filter = filter.trim().toLowerCase();
}

当初始化dataSource的filter属性时,视图中显示的数据将被更新。

<input matInput (keyup)="filter($event)" placeholder="find">

结果:

提高性能

有时我们必须在表或列表中显示大量的数据,在DOM中添加所有这些元素会导致问题,并迫使应用程序变慢。

Angular CDK提供了一个虚拟滚动来只显示视图中项目的一小部分,它保持了DOM元素的数量不变,提高了应用程序的性能。

不幸的是,默认情况下,虚拟滚动CDK不能与mat-table一起工作,但是包GitHub - diprokon/ng-table-virtual-scroll: Virtual Scroll for Angular Material Table(不是官方的)是一个允许在mat-table中使用虚拟滚动的指令。

import { MatSortModule } from '@angular/material/sort';
import { ScrollingModule } from '@angular/cdk/scrolling';
import { TableVirtualScrollModule } from 'ng-table-virtual-scroll';

@NgModule({
declarations: [AppComponent],

imports: [
BrowserModule,
BrowserAnimationsModule,
MatSortModule,
MatTableModule,
MatPaginatorModule,
ScrollingModule,
TableVirtualScrollModule,
],
providers: [],
bootstrap: [AppComponent],
})

export class AppModule {},

将MatTableDataSource更改为TableVirtualScrollDataSource。

this.nbaService.getData().subscribe((data) => {
this.dataSource = new TableVirtualScrollDataSource(data);
});

注意:ng-table-virtual-scroll不是官方包。

编辑模板:

<cdk-virtual-scroll-viewport
tvsItemSize="30"
headerHeight="56"
class="wrapper mat-elevation-z2"
style="height: 400px"
>
....
</cdk-virtual-scroll-viewport>

 

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

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

相关文章

Word处理控件Aspose.Words功能演示:在 Java 中将 Word DOCX 转换为 Markdown

如今&#xff0c;Markdown ( MD ) 格式被广泛用于编写在线文章、博客和文档。但是&#xff0c;在大型文档的情况下&#xff0c;它的语法变得难以记忆和书写。为方便起见&#xff0c;您可以在 MS Word 中编写内容&#xff0c;然后将DOCX文件转换为 Markdown。为了以编程方式执行…

nacos--基础--5.2.2--集成--SpringCloud--服务注册,发现,负载均衡

nacos–基础–5.2.2–集成–SpringCloud–服务注册&#xff0c;发现&#xff0c;负载均衡 代码位置 https://gitee.com/DanShenGuiZu/learnDemo/tree/master/nacos-learn1、介绍 服务发现客户端 从服务发现中心获取服务列表服务消费 通过负载均衡获取服务地址 2、添加依赖 …

jdk安装配置教程2022年12月最新版

这两天配了好几遍jdk&#xff0c;删了又下下了又删&#xff0c;总结一下&#xff0c;也算有点收获 1. 下载&#xff1a;官网Java Downloads | Oracle jdk1.8在下面&#xff0c;上面是最新的jdk17和jdk19 2.下载完成后&#xff0c;一路安装解压&#xff08;我撞在了C盘&#…

IfcOpenShell简明教程【BIM】

IFC 是用于存储 BIM 数据的 ISO 标准格式。 IfcOpenShell 是一个包含 Python 库的项目&#xff0c;可以用来解析 IFC 文件。 1、下载安装IfcOpenShell 首先&#xff0c;我们需要下载并安装 IfcOpenShell python。 目前没有 IfcOpenShell 的 API 文档&#xff0c;但考虑到它主…

Vector源码解析

Vector源码解析 简介 Vector 是一个古老的 线程安全(内部的核心方法都加了synchronized) 的容器&#xff0c;在 JDK1.0 时就已经存在&#xff0c;到如今已经很少使用。 基本结构与 ArrayList 类似&#xff0c;可以认为是线程安全版本的 ArrayList&#xff0c;但因为 Vector …

BCN-PEG-FITC 环丙烷环辛炔聚乙二醇荧光素 BCN-PEG-荧光素

双环[6,1,0]壬炔 (BCN) &#xff08;环丙烷环辛炔&#xff09;可以通过无铜的点击化学与叠氮化物标记的分子或生物分子反应生成稳定的三氮唑连接。 产品名称 BCN-PEG-FITC 环丙烷环辛炔聚乙二醇荧光素 中文名称 环丙烷环辛炔聚乙二醇荧光素 英文名称 BCN-PEG-FITC 分子…

基于Android的二维码识别系统的研究 与实现

XXXX 本科生毕业设计(论文) 学院(系)&#xff1a; XX 专 业&#xff1a; XX 学 生&#xff1a; XX 指导教师&#xff1a; XX XX 完成日期 年 月 XXX本科生毕业设计&#xff08;论文&#xff09; 基于Android的二维码识别系统的研究 与实现 Research and Implementati…

防重放、防篡改攻击的实现(Java版)

文章目录一、问题描述1、什么是重放攻击、篡改攻击&#xff1f;2、如何模拟重放攻击、篡改攻击&#xff1f;2.1、重放攻击模拟方式2.2、篡改攻击模拟方式二、解决方案三、在项目中使用1、项目简介2、项目实践一、问题描述 1、什么是重放攻击、篡改攻击&#xff1f; 1、重放攻击…

【SSM框架】为集合类型属性赋值

&#x1f353;个人主页&#xff1a;个人主页 &#x1f352;系列专栏&#xff1a;SSM框架 目录 1.为集合类型属性赋值 ①为List集合类型属性赋值 ②为Map集合类型属性赋值 2.p命名空间 3.引入外部属性文件 1.为集合类型属性赋值 ①为List集合类型属性赋值 在Clazz类中添加…

中国三大主流开源Linux操作系统社区及其产品生态

作者&#xff1a;IT圈黎俊杰 操作系统是基础软件的核心&#xff0c;是科技研发必备的底层支撑产品&#xff0c;它的核心技术至今仍然由美国为代表的西方国家所掌控着。由于以前国产操作系统产业长期处于“多、小、散”的状态&#xff0c;未能建立起完善的生态、未能研发出真正好…

python笔记(一)

文章目录字节对象与字符转换动态爬虫实施辅助工具python 部分内置方法示例&#xff1a;python虚拟环境的创建与激活执行多个.py程序获取当前系统默认浏览器名称反编译小程序PC端小程序&#xff08;wxapkg&#xff09;解密&#xff1a;反编译字节对象与字符转换 data1 babc # …

计算机系统实验-BombLab

一.实验题目及目的 1.实验题目 程序运行在linux环境中。程序运行中有6个关卡&#xff08;6个phase&#xff09;&#xff0c;每个phase需要用户在终端上输入特定的字符或者数字才能通关&#xff0c;否则将会引爆炸弹。需要通过分析汇编代码&#xff0c;使用gdb调试等方式找到正…

oracle入门-19c 安装详细教程

我们知道学习一门技术&#xff0c;第一件事情就是搭建对应的环境。本教程将详细教大家如何安装oracle。 目录一、虚拟机创建二、挂载镜像、安装及系统配置三、 软件包传输四、数据库安装五、 图形化向导建库一、虚拟机创建 处理器数量根据自己的机器配置进行调整&#xff08;4 …

Android IPC机制

本文首发于个人博客 “胖蔡叨叨叨”&#xff0c;更多相关信息可点击查看《Android IPC机制》​​​​​​​ IPC IPC(Inter Process Communication) 进程间通信&#xff0c;是指系统中运行的不同进程间的信息交互过程。Android IPC通常用于应用间、或同应用不同进程间的数据通…

3分钟读懂数据可视化如何帮助企业智慧管理,提升管理水平

随着大数据时代的到来&#xff0c;企业管理的决策越来越倚重数据指标&#xff0c;通过数据指标了解公司运作的情况&#xff0c;产品生产销售情况&#xff0c;收入与支出情况等等&#xff0c;更大的作用是对商业趋势预测提供了决策依据&#xff0c;使公司提前布局未来&#xff0…

Q-Automation:基于ATX的自动化测试管理软件

Softing Q-Automation是基于ATX的自动化测试管理软件&#xff0c;用于测试电子控制单元&#xff08;ECU&#xff09;。该软件支持诊断协议层测试和诊断功能测试&#xff0c;并且只需填写Excel表格&#xff0c;即可实现半自动化测试需求&#xff0c;从而缩短了用户的测试周期。同…

2022年终Java编程技术总结

目录 00 总体脑图 第一章、基础篇 01 计算机基础 ## 1.1 操作系统 1.1.1 基本知识 略 1.1.2 常见Linux命令 目录文件内容搜索系统类网络权限cdcp/scpvi/vimfind: find . -name xxkillnetstat -anchmodlsmvcatgrep: ps -efgrep xxlsof: lsof-i:portmkdirrmtailwhereistopp…

web前端期末大作业 ——电影主题介绍 你好,李焕英 ——html+css+javascript网页设计实例

HTML实例网页代码, 本实例适合于初学HTML的同学。该实例里面有设置了css的样式设置&#xff0c;有div的样式格局&#xff0c;这个实例比较全面&#xff0c;有助于同学的学习,本文将介绍如何通过从头开始设计个人网站并将其转换为代码的过程来实践设计。 精彩专栏推荐&#x1f4…

Win11电脑蓝屏怎么办?Win11电脑蓝屏的修复方法

Win11电脑蓝屏怎么办&#xff1f;电脑蓝屏是最为常见的系统故障问题之一&#xff0c;当电脑出现蓝屏时一般分为可以开机以及无法开机的情况&#xff0c;针对这两种情况&#xff0c;下面小编分别准备了对应的解决方法&#xff0c;有需要的朋友们欢迎收藏慢慢看哦。 方法一&#…

家居类小红书达人投放总结,kol执行策略

在小红书平台上&#xff0c;许多品牌方都做了达人投放&#xff0c;但结果却反响平平&#xff0c;最后才发现是达人挑选出了问题&#xff0c;而发现这个问题的代价就是错失先机&#xff0c;也耗费大量成本来试错&#xff0c;今天为大家分享一下小红书达人投放总结以及超硬干货。…