gpt4 book ai didi

angular - 清晰分页 - clr-dg-page-size 的输出

转载 作者:行者123 更新时间:2023-12-02 13:33:31 27 4
gpt4 key购买 nike

我正在用 Angular 8 清晰地编写应用程序。

我使用带分页的数据网格。我需要在更改每页项目后获取数据,但清晰度组件没有任何输出。只有更改页面的输出。

有一些html:

<clr-dg-footer>
<clr-dg-pagination #pagination [clrDgPageSize]="itemsPerPage" [clrDgTotalItems]="totalElements" [clrDgLastPage]="totalPages"
(clrDgPageChange)="onChangePage($event)">
<clr-dg-page-size [clrPageSizeOptions]="[5,20,50,100]" (change)="onItemsPerPageChange($event)">Samochodów na stronę</clr-dg-page-size>
{{pagination.firstItem + 1}} - {{pagination.lastItem + 1}}
z {{pagination.totalItems}} samochodów
</clr-dg-pagination>
</clr-dg-footer>

我现在是这样做的:

onItemsPerPageChange(event) {
let newValue = +event.target.value.slice(3);
if(this.itemsPerPage !== newValue) {
this.itemsPerPage = newValue;
this.fetchCars();
}
}

它有效,但我知道这是一种糟糕的方法。

你知道正确的做法吗?我没有任何想法。

最佳答案

我认为常见的方式是 Claritys datagrid的方法是在数据网格模板内将 ClrDatagridStateInterface(clrDgRefresh) 绑定(bind)一起使用。

看看清晰度 Server-Driven datagrid APIthis clarity-dg-server-driven Stackblitz .

在您的组件中,您可以使用ClrDatagridStateInterface

class MyComponent {
users: User[];
total: number;
loading: boolean = true;

refresh(state: ClrDatagridStateInterface) {
this.loading = true;
...
this.inventory.filter(filters)
.sort(<{by: string, reverse: boolean}>state.sort)
.fetch(state.page.from, state.page.size)
.then((result: FetchResult) => {
this.users = result.users;
this.total = result.length;
this.loading = false;
});
}

在模板中,您必须将 (clrDgRefresh) 绑定(bind)到 refresh 方法:

<clr-datagrid (clrDgRefresh)="refresh($event)" [clrDgLoading]="loading">
<clr-dg-column>User ID</clr-dg-column>
<clr-dg-column [clrDgField]="'name'">Name</clr-dg-column>
<clr-dg-column [clrDgField]="'creation'">Creation date</clr-dg-column>
<clr-dg-column [clrDgField]="'pokemon'">Pokemon</clr-dg-column>
<clr-dg-column [clrDgField]="'color'">Favorite color</clr-dg-column>

<clr-dg-row *ngFor="let user of users">
<clr-dg-cell>{{user.id}}</clr-dg-cell>
<clr-dg-cell>{{user.name}}</clr-dg-cell>
<clr-dg-cell>{{user.creation | date}}</clr-dg-cell>
<clr-dg-cell>{{user.pokemon.name}}</clr-dg-cell>
<clr-dg-cell>
<span class="color-square" [style.backgroundColor]="user.color"></span>
</clr-dg-cell>
</clr-dg-row>

<clr-dg-footer>
{{pagination.firstItem + 1}} - {{pagination.lastItem + 1}}
of {{total}} users
<clr-dg-pagination #pagination [clrDgTotalItems]="total"></clr-dg-pagination>
</clr-dg-footer>
</clr-datagrid>

Here您可以从 Claritys 服务器驱动示例中找到源代码。

关于angular - 清晰分页 - clr-dg-page-size 的输出,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58087433/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com