提供3000多款全球软件/控件产品
针对软件研发的各个阶段提供专业培训与技术咨询
根据客户需求提供定制化的软件开发服务
全球知名设计软件,显著提升设计质量
打造以经营为中心,实现生产过程透明化管理
帮助企业合理产能分配,提高资源利用率
快速打造数字化生产线,实现全流程追溯
生产过程精准追溯,满足企业合规要求
以六西格玛为理论基础,实现产品质量全数字化管理
通过大屏电子看板,实现车间透明化管理
对设备进行全生命周期管理,提高设备综合利用率
实现设备数据的实时采集与监控
利用数字化技术提升油气勘探的效率和成功率
钻井计划优化、实时监控和风险评估
提供业务洞察与决策支持实现数据驱动决策
翻译|使用教程|编辑:龚雪|2024-11-26 10:30:50.567|阅读 7 次
概述:本文主要介绍如何使用Kendo UI for Angular组件的ListView来构建带有图表的仪表板,欢迎下载新版控件体验!
# 慧都年终大促·界面/图表报表/文档/IDE等千款热门软控件火热促销中 >>
Kendo UI for Angular ListView可以轻松地为客户端设置一个带有图表列表的仪表板,包括分页、按钮选项、数字或滚动,以及在没有更多项目要显示时的通知等。Kendo UI for Angular是专用于Angular开发的专业级Angular组件。telerik致力于提供纯粹的高性能Angular UI组件,无需任何jQuery依赖关系。
在上文中(),我们为大家介绍了本教程适用的场景、项目基本设置、模拟数据等,本文将继续介绍如何显示图表、自定义分页等,欢迎加入社群持续关注产品动态~
Kendo UI for Angular 2024 Q4新版下载
Telerik_KendoUI产品技术交流群:726377843 欢迎一起进群讨论
是时候构建仪表板了,打开app.component.ts,在导入部分导入并注册ChartStatsComponent。由于模拟数据提供了countries的数据使用情况列表,因此声明一个本地变量countries并使用frameworkUsage模拟数据对其进行设置。
代码像这样:
import { Component } from '@angular/core'; import { RouterOutlet } from '@angular/router'; import { frameworkUsage } from './data/data'; import { ChartStatsComponent } from './components/chart-stats/chart-stats.component'; @Component({ selector: 'app-root', standalone: true, imports: [RouterOutlet,ChartStatsComponent], templateUrl: './app.component.html', styleUrl: './app.component.css', }) export class AppComponent { title = 'listview-charts'; countries = frameworkUsage; }
接下来,打开app.component.html并使用app-chart-stats组件显示每个country的图表。您可以使用Angular @for指令来循环遍历countries数组,并将数据绑定到app-chart-stats组件。
在*@for中,添加一个带有country类的新div,并使用插值来绑定country.country以显示名称。
app.component.html中的代码是这样的:
@for (country of countries; track country) { <div class="country"> <h2>{{ country.country }}</h2> <app-chart-stats [data]="country.data" field="framework" category="usage" /> </div> }
现在仪表板设置为使用ChartStatsComponent显示每个country 的图表。
打开styles.css,添加.country CSS类,并使用以下CSS规则:
.country { border: 1px solid black; margin: 1rem; padding: 1rem; }
保存更改,然后我们拥有一个带有图表列表的仪表板!
这是一种很好的数据可视化格式,但是缺少一些特性,比如分页、滚动等。
我们将首先创建pagination.service来处理分页逻辑,分页服务将根据当前页面和页面大小计算应该显示哪些项。
首先,运行以下命令在Angular CLI中生成:
ng g s services/pagination
CREATE src/app/services/pagination.service.spec.ts (377 bytes)
CREATE src/app/services/pagination.service.ts (139 bytes)
创建一个接口来定义分页结果的结构,该界面包括当前页面的条目、条目总数、当前页数和总页数。
为了节省时间,我们将提供PaginationResult接口,打开src/app/services/pagination.service.ts并粘贴到文件中。
export interface PaginationResult { items: T[]; totalItems: number; currentPage: number; totalPages: number; }
在同一个文件(pagination.service.ts) 中,在PaginationService类中实现这个功能。在此服务中,我们将提供一个名为paginateData的方法,该方法根据当前页面和页面大小对数据数组进行切片,然后返回经过分页的结果。
@Injectable({ providedIn: 'root' }) export class PaginationService { paginateData(data: any, page: number, pageSize: number): PaginationResult { const totalItems = data.length; const totalPages = Math.ceil(totalItems / pageSize); const startIndex = (page - 1) * pageSize; const endIndex = Math.min(startIndex + pageSize, totalItems); return { items: data.slice(startIndex, endIndex), totalItems, currentPage: page, totalPages, }; } }
下一步是在app.component.ts中使用pagination.service,让我们开始吧!
修改app.component.ts,首先注入PaginationService来处理分页。因为我们需要持续跟踪所有数据,并且只提供当前页面中的项,所以必须拆分数据。
将模拟数据存储在一个名为dataServer的新变量中:
export class AppComponent implements OnInit { dataServer = frameworkUsage;
注意,我们正在这个组件上实现OnInit(很快就会用到),一定要把它添加到组件顶部@angular/core的OnInit导入中。
接下来,用一个空数组初始化countries,并配置pageSize和currentPage。
countries: any = []; currentPage = 1; pageSize = 3;
创建一个新方法bindData(),将配置和数据发送到分页服务,并返回paginationResult对象,将条目绑定到countries变量。
bindData() { const paginatedResult = this.paginationService.paginateData( this.dataServer, this.currentPage, this.pageSize, ); this.countries = paginatedResult.items; }
实现ngOnInit生命周期hooks来绑定初始数据。
ngOnInit(): void { this.bindData(); }
为了在页面之间移动,我们创建了一个新方法nextPage(),它增加currentPage值并减少prevPage,然后再次调用bindData()方法。
nextPage() { this.currentPage = this.currentPage + 1; this.bindData(); }
app.component.ts代码中的最终代码如下:
export class AppComponent implements OnInit { dataServer = frameworkUsage; countries: any = []; currentPage = 1; pageSize = 3; paginationService = inject(PaginationService); ngOnInit(): void { this.bindData(); } bindData() { const paginatedResult = this.paginationService.paginateData( this.dataServer, this.currentPage, this.pageSize, ); this.countries = paginatedResult.items; } prevPage() { this.currentPage = this.currentPage - 1; this.bindData(); } nextPage() { this.currentPage = this.currentPage + 1; this.bindData(); } }
分页的最后一步是打开app.component.html,添加两个按钮,prev 和 next。在next按钮中,将click事件绑定到nextPage函数:
<button (click)="prevPage()">next</button> <button (click)="nextPage()">next</button> @for (country of countries; track country) { <div class="country"> <h2>{{ country.country }}</h2> <app-chart-stats [data]="country.data" field="framework" category="usage" /> </div> }
我们才刚刚开始分页,为什么不采取快捷方式,通过切换到Kendo UI for Angular ListView,只用几行代码就能实现相同的功能,甚至更多呢?它将简化诸如滚动、分页甚至突出显示特定元素等任务,从而使我们的工作变得轻松!接下来我们将具体介绍,篇幅有限下期见!
未完待续我们下期继续,产品咨询“”了解~
本站文章除注明转载外,均为本站原创或翻译。欢迎任何形式的转载,但请务必注明出处、不得修改原文相关链接,如果存在内容上的异议请邮件反馈至chenjj@cahobeh.cn
文章转载自:慧都网本文将探讨如何使用 Spire.XLS for .NET 在 C# 程序中导入 Excel 数据到数据库以及导出数据库到 Excel 文件,实现数据在 Excel 和数据库之间无缝流转。
在本文中,我们将向您展示如何逐步执行此操作,告诉您什么是 SCORM,为什么需要使用它,并列出我们测试过的最佳 SCORM 转换工具之一——iSpring Suite。
本文主要介绍如何使用Kendo UI for Angular组件的ListView来构建带有图表的仪表板,欢迎下载新版控件体验!
在本文中,您将学习如何使用Spire.PDF for .NET在 C# 中向 PDF 文档添加页码。
全新升级的Kendo UI,是创建数据丰富的Web应用程序的最完整UI库。
Kendo UI for Angular完整的Angular UI组件库,助力构建高性能的现代Angular应用。
服务电话
重庆/ 023-68661681
华东/ 13452821722
华南/ 18100878085
华北/ 17347785263
客户支持
技术支持咨询服务
服务热线:400-700-1020
邮箱:sales@cahobeh.cn
关注我们
地址 : 重庆市九龙坡区火炬大道69号6幢