Telerik kendo-grid Paging - 第一次加载时间太长
Telerik kendo-grid Paging - Taking too much time to load for the first time
我正在使用 Angular 6 和 Telerik kendo-grid 4.8.4
下面是 kendo-grid
的示例代码
<kendo-grid #grid="kendoGrid" class="k-grid-fullheight" (cellClick)="onCellClick($event)"
(dataStateChange)="dataStateChange($event)" [sortable]="{allowUnsort: false, mode: 'single'}"
[sort]="state.sort" [filter]="state.filter" [data]="TestData" [selectable]="selectableSettings"
[pageable]="true" [pageSize]="state.take" [skip]="state.skip" filterable="menu" [reorderable]="true"
(selectionChange)="selectionChanged($event)" [groupable]="false" [group]="state.group" [columnMenu]="true"
[resizable]="true">
<kendo-grid-column showSelectAll="true" [width]="60" [minResizableWidth]="60">
<ng-template kendoGridHeaderTemplate let-column let-columnIndex="columnIndex">
<input type="checkbox" (click)="SetAllSelected($event)" />
</ng-template>
<ng-template kendoGridCellTemplate let-dataItem>
<input type="checkbox" [checked]="dataItem.selected" [attr.disabled]="dataItem.Name !== null ? true : null" (click)=SetSelectedItem(dataItem) />
</ng-template>
</kendo-grid-column>
<kendo-grid-column field="Name" title={{NAME}} filter="text" [filterable]="true"
headerClass="kendoColumn">
<ng-template kendoGridCellTemplate let-dataItem>
<a *ngIf="dataItem.Status === 0"
[routerLink]="['/MyModule/details/'+dataItem.Id]">{{dataItem.Name}}</a>
<span *ngIf="dataItem.Status === 1">{{dataItem.Name}}</span>
</ng-template>
</kendo-grid-column>
</kendo-grid>
尝试遵循以下内容link
上面的分页效果很好link。
第一次加载网格需要 20 秒,因为它试图获取大约 20,000 条记录。
如何修改当前的 kendo-grid 以仅获取前 10 条记录?
点击页码后,能否再次从服务器获取?
如有任何帮助,我们将不胜感激。
如果你 post 一些 ts 代码也会有所帮助。
How to modify the current kendo-grid to fetch only first 10 records?
将 state.take
设置为 10
并将 state.skip
设置为 0
并进行 http 调用以获取数据。
On click of page number, can it be fetched from the Server again?
是的,在 ts 中的 dataStateChange(event: DataStateChangeEvent)
中,您应该像 this.state = event;
一样将 event
附加到 state
并进行 http 调用以检索相应的数据(例如只是console.log(event)
你会看到第 3 页 event.skip
为 20,第 4 页 event.skip
为 30,依此类推。
我正在使用 Angular 6 和 Telerik kendo-grid 4.8.4
下面是 kendo-grid
的示例代码<kendo-grid #grid="kendoGrid" class="k-grid-fullheight" (cellClick)="onCellClick($event)"
(dataStateChange)="dataStateChange($event)" [sortable]="{allowUnsort: false, mode: 'single'}"
[sort]="state.sort" [filter]="state.filter" [data]="TestData" [selectable]="selectableSettings"
[pageable]="true" [pageSize]="state.take" [skip]="state.skip" filterable="menu" [reorderable]="true"
(selectionChange)="selectionChanged($event)" [groupable]="false" [group]="state.group" [columnMenu]="true"
[resizable]="true">
<kendo-grid-column showSelectAll="true" [width]="60" [minResizableWidth]="60">
<ng-template kendoGridHeaderTemplate let-column let-columnIndex="columnIndex">
<input type="checkbox" (click)="SetAllSelected($event)" />
</ng-template>
<ng-template kendoGridCellTemplate let-dataItem>
<input type="checkbox" [checked]="dataItem.selected" [attr.disabled]="dataItem.Name !== null ? true : null" (click)=SetSelectedItem(dataItem) />
</ng-template>
</kendo-grid-column>
<kendo-grid-column field="Name" title={{NAME}} filter="text" [filterable]="true"
headerClass="kendoColumn">
<ng-template kendoGridCellTemplate let-dataItem>
<a *ngIf="dataItem.Status === 0"
[routerLink]="['/MyModule/details/'+dataItem.Id]">{{dataItem.Name}}</a>
<span *ngIf="dataItem.Status === 1">{{dataItem.Name}}</span>
</ng-template>
</kendo-grid-column>
</kendo-grid>
尝试遵循以下内容link
上面的分页效果很好link。
第一次加载网格需要 20 秒,因为它试图获取大约 20,000 条记录。
如何修改当前的 kendo-grid 以仅获取前 10 条记录?
点击页码后,能否再次从服务器获取?
如有任何帮助,我们将不胜感激。
如果你 post 一些 ts 代码也会有所帮助。
How to modify the current kendo-grid to fetch only first 10 records?
将 state.take
设置为 10
并将 state.skip
设置为 0
并进行 http 调用以获取数据。
On click of page number, can it be fetched from the Server again?
是的,在 ts 中的 dataStateChange(event: DataStateChangeEvent)
中,您应该像 this.state = event;
一样将 event
附加到 state
并进行 http 调用以检索相应的数据(例如只是console.log(event)
你会看到第 3 页 event.skip
为 20,第 4 页 event.skip
为 30,依此类推。