首页 > 解决方案 > 可以通过异步函数过滤 Blazor 数据网格吗?

问题描述

我正在开发一个 Blazor NET 5 项目。我在网格(MudTable)中显示数据,并了解如何使用属性 Filter="new Func<Dataset, bool>(Search)" 对其进行过滤,其中 Search 是

private bool Search(Dataset dataset)
    {
        if (string.IsNullOrWhiteSpace(searchString)) return true;
        if (dataset.name.Contains(searchString, StringComparison.OrdinalIgnoreCase))
        {
            return true;
        }
        return false;
    }

但现在我必须按异步方法响应的数据内容进行过滤。我的搜索方法将类似于

private async Task <bool> Search(Dataset dataset)
    {
        if (string.IsNullOrWhiteSpace(searchString)) return true;
        if (dataset.name.Contains(searchString, StringComparison.OrdinalIgnoreCase))
        {
            var response = await Http.GetAsync($"api/Files/metadata/Download?directory={dataset.Name}");
            if response.metadata.descr != "" return true;
        }
        return false;
    }

这是否仍然可以使用 Func 属性作为过滤器,还是我必须找到另一种方法?

标签: .netasynchronousfiltergridblazor

解决方案


根据他们的文档网站,有一种方法:

https://mudblazor.com/api/table

ServerData Func<TableState, Task<TableData>>
提供一个异步函数,从服务器(重新)加载过滤、分页和排序的数据。Table 将等待这个函数并根据返回的 TableData 进行更新。仅与 ServerData 一起使用


推荐阅读