首页 > 解决方案 > 尽管有结果,但数据网格为空

问题描述

我知道我在这里做错了什么,但我不确定是什么。我有下面的数据网格和一些从 cosmosDB 中获取一些文档的代码。

<SfButton @onclick="btnTest"></SfButton>
<SfGrid @ref="RequestGrid" DataSource="@requests" AllowPaging="true" AllowSorting="true" AllowPdfExport="true" AllowExcelExport="true" Locale="en-GB" Toolbar="@Toolbaritems">
    <GridEvents OnToolbarClick="ToolbarClickHandler" TValue="RequestRoot"></GridEvents>
    <GridPageSettings PageSize="5"></GridPageSettings>
    <GridColumns>
        <GridColumn Field=@nameof(RequestRoot.id) HeaderText="ID" TextAlign="TextAlign.Left" Width="10"></GridColumn>
        <GridColumn Field=@nameof(RequestRoot.identityrequest.email) HeaderText="Email" TextAlign="TextAlign.Left" Width="50"></GridColumn>
        <GridColumn Field=@nameof(RequestRoot.identityrequest.status) HeaderText="Status" TextAlign="TextAlign.Left" Width="150"></GridColumn>
    </GridColumns>
</SfGrid>
<SfDialog Width="250px" IsModal="true" @bind-Visible="@IsVisible">
    <DialogEvents OnOverlayClick="@OnOverlayclick">
    </DialogEvents>
    <DialogTemplates>
        <Content> This is a modal dialog </Content>
    </DialogTemplates>
</SfDialog>
@code {
    private List<RequestRoot> requests = new List<RequestRoot>();
    public SfGrid<RequestRoot> RequestGrid;
    private List<Object> Toolbaritems = new List<Object>() { "Search", new ItemModel() { Text = "Add Request", TooltipText = "Add Request", PrefixIcon = "e-add", Id = "Click" }, "PdfExport", "WordExport", "ExcelExport" };
    bool IsVisible = false;

    protected override async Task OnInitializedAsync()
    {

        IDocumentQuery<RequestRoot> query = client.CreateDocumentQuery<RequestRoot>(UriFactory.CreateDocumentCollectionUri("ID4S", "identityrequest"),
            new FeedOptions { MaxItemCount = -1, EnableCrossPartitionQuery = true, MaxDegreeOfParallelism = 199, MaxBufferedItemCount = 100000 })
            .AsDocumentQuery();

        while (query.HasMoreResults)
        {
            FeedResponse<RequestRoot> feedResponse = await query.ExecuteNextAsync<RequestRoot>();
            Console.WriteLine(feedResponse.Select(x => x.id));
            requests = feedResponse.ToList();
        }
        return;
    }

运行后,我可以看到requests其中有两个项目,但该表没有填充任何数据,我不知道为什么。

标签: c#listdatagridazure-cosmosdbsyncfusion

解决方案


当数据源的列表为空时,这是一个已知问题,它将在预计于 2020 年 8 月中旬或之前推出的 Service Pack 版本中得到解决。

在此之前,您可以将数据源属性声明为 null,然后在 OnInitializedAsync 方法中绑定实际值来解决此问题。请参阅下面的代码片段。

<SfGrid  DataSource="@requests">
..
</SfGrid>

@code {

private List<RequestRoot> requests = null;
protected override async Task OnInitializedAsync()
{
requests = feedResponse.ToList();
}
}


推荐阅读