Blazor在请求更改时虚拟化更新

Blazor在请求更改时虚拟化更新,blazor,Blazor,我有一个组件,可以显示多达200000个数据库中的许多运动员。 它工作得很好,但是当我添加了一个带有过滤结果列表的select时,我可以看到结果计数已更新,但是虚拟化组件在我滚动之前不会更新 @页码/人 @注入HttpClient Http @${totalindividu:0}运动员已链接 帕斯德塞尔苏尔酒店 @如果支付!=无效的 { @支付中的每个var p { @p、 aaipays_nom } } @塞尔帕伊斯 身份证件 密码 诺姆朗 支付 纪律 出生日期 @个人身份 @个人代码 @个人

我有一个组件,可以显示多达200000个数据库中的许多运动员。 它工作得很好,但是当我添加了一个带有过滤结果列表的select时,我可以看到结果计数已更新,但是虚拟化组件在我滚动之前不会更新

@页码/人 @注入HttpClient Http @${totalindividu:0}运动员已链接 帕斯德塞尔苏尔酒店 @如果支付!=无效的 { @支付中的每个var p { @p、 aaipays_nom } } @塞尔帕伊斯

身份证件 密码 诺姆朗 支付 纪律 出生日期 @个人身份 @个人代码 @个人名称 @个人名称 @独立学科名称 @个人日期 加载。。。 加载。。。 加载。。。 加载。。。 加载。。。 加载。。。 @代码{ 私有整数=0; 私有字符串selpays=-1; 私人BdsPays[]支付=null; 私有BDSIndidu[]individus=null; 受保护的重写异步任务OnInitializedAsync { pays=wait Http.GetFromJsonAsyncapi/BdsAa/pays/1; //individus=等待加载individus 0,50; } 私有异步任务LoadIndividusint开始,int计数 { totalindividu=wait Http.GetFromJsonAsync$api/BdsAa/individidusinoutcount/1/33/{selpays}; individus=wait Http.GetFromJsonAsync$api/BdsAa/individidusinout/1/33/{start}/{count}/{selpays}; 回归个体; } 私有异步值任务LoadIndividualItemsProviderRequest请求 { individus=await LoadIndividusrequest.StartIndex,request.Count; 国家发生了变化; 返回新项目ProviderResultIndividus,totalindividu; } 专用异步任务更改PaySchangeEventArgs e { selpays=e.Value.ToString; individus=null; 国家发生了变化; } } 当我的过滤器更改时,有没有想法强制更新表


Jean

您应该能够如下调用RefreshDataAsync

从添加此功能的问题开始

对于开发人员使用ItemsProvider的更一般的情况,我们应该在Virtualize上添加一个新的公共异步任务RefreshDataAsync方法。如果开发人员有理由认为底层数据源输出可能已更改(例如,当用户单击刷新按钮时),则可以调用此函数。这与用户滚动到一组新数据时发生的情况相同


要在Mike的文章中稍作扩展,您需要添加一个对虚拟化组件的引用,如下所示:

[...] @代码{ 私有虚拟化ArticleContainer{get;set;} } 通过引用,您可以触发刷新。请注意,这不会导致组件再次呈现,您还必须调用StateHasChanged

私有异步任务重载 { 等待ArticleContainer.RefreshDataAsync; 国家发生了变化; }
谢谢,这正是我想要的,但我想到目前为止还没有实现?