I have a RadzenDataGrid where I display a Timespan that comes from a DB. When I want to filter the timespan (e.g. for "is not null", nothing happens and the args.Filter has no value, so it is just "it => ". Any ideas if this is even possible with timespans? Here the datagrid:
<RadzenDataGrid @ref="_grid" AllowFiltering="true" AllowColumnResize="true"
FilterMode="@FilterMode.Advanced" LoadData="@LoadData" Data="@_shipments">
<Columns>
<RadzenDataGridColumn TItem="SdShipment" Property="@nameof(SdShipment.OrderNumber)" Title="Order Number" Frozen="true" />
<RadzenDataGridColumn TItem="Shipment" Property="LifeSpan" Title="Life Span" Sortable="true" Filterable="true">
<Template Context="data">
@((data.LifeSpan.HasValue) ? data.LifeSpan.Value.Days.ToString() : "N/A")
</Template>
</RadzenDataGridColumn>
<RadzenDataGridColumn TItem="Shipment" Property="Material.Type" Title="Material Type" />
<RadzenDataGridColumn TItem="Shipment" Property="Asset.AssetType" Title="Asset Type" />
</Columns>
</RadzenDataGrid>
private async Task LoadData(LoadDataArgs args)
{
_isLoading = true;
await InvokeAsync(StateHasChanged);
try
{
await using var context = await ContextFactory.CreateDbContextAsync();
var query = context.shipments
.AsQueryable();
var filterActive = false;
if(!string.IsNullOrEmpty(args.Filter))
{
query = query.Where(args.Filter);
filterActive = true;
}
if(!string.IsNullOrEmpty(args.OrderBy))
{
query = query.OrderBy(args.OrderBy);
}
_shipments = query.Skip(args.Skip ?? 0).Take(args.Top ?? 250).ToList();
}
catch(Exception ex)
{
...
}
finally
{
_isLoading = false;
await InvokeAsync(StateHasChanged);
}
}