如何以编程方式更改 Angular Kendo UI 网格页面索引?
Posted
技术标签:
【中文标题】如何以编程方式更改 Angular Kendo UI 网格页面索引?【英文标题】:How to change Angular Kendo UI grid page index programmatically? 【发布时间】:2021-10-06 10:52:54 【问题描述】:这个问题是asked 8 years ago,但是 Kendo UI 网格已经发展并且现在支持 Angular。原始问题的答案不适用于 Kendo Grid Angular。
我有一个剑道网格,如果数据少于一页,我会在其中隐藏分页控件。
template: `<kendo-grid #kendoGrid [kendoGridBinding]="gridView"
[pageSize]="pageSize" [pageable]="showPaginator()"
在哪里
showPaginator(): boolean
return this.gridView?.length > this.pageSize;
如果第二页上只有一个项目并且我删除了该项目,则网格会显示没有项目但隐藏分页控件的第二页。 我想选择网格的第一行,或者选择网格的第一页但找不到执行此操作的 api 调用。
【问题讨论】:
【参考方案1】:为了选择网格的第一页,您需要使用 Kendo 的网格 state 来更改 skip,例如:
[pageSize]="state.take"
[skip]="state.skip"
ts
public removeItem()
//remove the item
this.state.skip = 0;
//reload items refreshing grid
如您所见,我也更改了[pageSize]="state.take"
而不是pageSize
。你可以在take找到更多信息。
【讨论】:
【参考方案2】:虽然第一个答案是正确的,但我想发布完整的解决方案,用于在不需要时隐藏分页工具栏,以及在页面上的最后一行被删除时移回页面。
模板
template: `<kendo-grid
[kendoGridBinding]="gridView"
[pageSize]="pageSize" [pageable]="showPaginator()"
[skip]="skip"
(pageChange)="pageChange($event)">`
组件
skip = 0; // how many rows to skip
pageSize: number = 20;
_gridData = []; // original passed data
gridView: any[]; // store a slice of data if any filter are active
// Each time the number of rows in the grid data changes
// move back from last page if empty (eg deleted last item on last page)
@Input() set gridData(values: any)
this._gridData = [...values];
else if (values && values.length === 0)
this._gridData = [];
this.gridView = cloneDeep(this._gridData); // set initial view
while ( (this.gridView.length <= this.skip ) &&
(this.skip >= this.pageSize))
this.skip = this.skip - this.pageSize;
while ( (this.gridView.length <= this.skip ) &&
(this.skip >= this.pageSize))
this.skip = this.skip - this.pageSize;
public showPaginator(): boolean
return ((!!this.gridView) && (this.gridView.length > this.pageSize));
// Keep track of the current page.
public pageChange(event: PageChangeEvent): void
this.skip = event.skip;
【讨论】:
以上是关于如何以编程方式更改 Angular Kendo UI 网格页面索引?的主要内容,如果未能解决你的问题,请参考以下文章
如何在 Kendo Grid + Angular 4 中以编程方式设置选定行?
Angular 2 如何禁用 kendo-dropdownlist
在 kendo ui 网格中以编程方式更改 serverSorting
如何以编程方式更改电子内部 Angular 中的音频输出设备?