【问题标题】:Blazor - SortBy parameter for table column componentBlazor - 表列组件的 SortBy 参数
【发布时间】:2020-02-11 16:26:16
【问题描述】:

我正在使用 Blazor,希望能够通过采用 lambda 表达式的 SortBy 参数按给定列对数据网格(表)进行排序。它看起来像这样:

<DataGrid Items="Orders">
  <GridHeader>
    <GridColumn Label="Order Number" SortBy="@(order => order.OrderNumber)" />
    <GridColumn Label="Order Date" SortBy="@(order => order.Date)" />
    <GridColumn Label="Order Status" SortBy="@(order => order.Status)" />
    <GridColumn Label="Number of Line Items" SortBy="@(order => order.LineItems.Count)" />
  </GridHeader>
  <GridRow Context="order">
    <td>@order.OrderNumber</td>
    <td>@order.OrderDate</td>
    <td>@order.Status</td>
    <td>@order.LineItems.Count</td>
  </GridRow>
</Table>

Grid 组件应该能够接受任何类型的IEnumerable(例如IEnumerable&lt;Order&gt;),因此&lt;DataGrid&gt; 组件应该具有与其行项相关联的通用类型,通过@typeparam TableItem 设置。我遇到的问题是能够在 GridColumn SortBy 参数中引用 TableItem 类型。我需要它,以便我的代码编辑器 (Visual Studio) 识别 SortBy lambda 表达式中的 TableItem 类型,以便(在此示例中)当我开始输入 SortBy="@(order =&gt; order.)" 时,它会将 order 识别为类型 Order并且智能感知将调出该类型的属性。我认为该解决方案与使用级联参数 (CascadingValue) 和 @typeparam 有关,但我无法让它工作,并且想知道 Blazor 是否存在当前限制阻止它工作(例如,请参阅this github issue,它仍然处于打开状态)。

这是否可能,如果可以,我应该在这里使用什么方法?

【问题讨论】:

    标签: c# lambda blazor type-parameter


    【解决方案1】:

    对不起,我没有给你一个直接的答案,但你可以看到这个项目的可排序和可过滤表,包括 lambda 表达式。我在我的项目中使用它,目前运行良好。希望你发现它有用:)。 Blazor sortable table.

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-11-04
      • 2021-05-26
      • 2021-07-07
      • 1970-01-01
      • 2022-01-01
      • 1970-01-01
      • 2021-01-18
      • 1970-01-01
      相关资源
      最近更新 更多