TelerikGrid 异步数据源

问题描述 投票:0回答:1
c# async-await telerik-grid
1个回答
0
投票

根据this documentation,如果您希望网格在更新列表时自动更新,则必须将集合声明为

ObservableCollection
。您可能还必须初始化一个空集合,以便网格可以订阅其事件:

private ObservableCollection<dynamic> GridFilter = new ObservableCollection<dynamic>();

但这意味着你不能用集合的新实例替换

GridFilter
,就像你在这里做的那样:

GridFilter = await this.GetData();

您必须将每个项目添加到现有集合中。您可以在

ButtonClick()
活动中执行此操作,或者直接将项目添加到
GridFilter
中的
GetData()
.

ObservableCollection
不支持
AddRange()
不幸的是,所以你必须一次添加一个。或者,你可以使用这个
ObservableRangeCollection
某人写的类来支持
AddRange
.

另一种方法是在更改集合后在网格上调用 Rebind 方法,它可能看起来像这样(未经测试,因此可能需要一些调整):

    <TelerikGrid Class="grid"
                 Data=@GridFilter
                 Sortable="true"
                 FilterMode="GridFilterMode.FilterMenu"
                 Resizable="true"
                 SelectionMode="GridSelectionMode.Multiple"
                 Pageable="true"
                 PageSize=20
                 Navigable="true"
                 @ref="@GridRef">
    private async Task ButtonClick()
    {
        GridFilter = await this.GetData();
        GridRef.Rebind();
    }
© www.soinside.com 2019 - 2024. All rights reserved.