Code example to reproduce issue, perhaps not the best 'real world example' but it gets across the issue.
<div class="container-fluid">
<div class="row">
<div class="col">
<RadzenCard class="mb-3" style="display: flex; align-items: center; gap: 0.5rem">
<RadzenCheckBox @bind-Value="@auto" Name="auto" />
<RadzenLabel Text="Auto filter" Component="auto" Style="margin-left: 8px; margin-right: 32px; vertical-align: middle;" />
<RadzenButton Text="Apply Filter" Click="@(args => dataFilter.Filter())" Disabled="@auto" />
</RadzenCard>
<RadzenCard class="mb-3">
<RadzenDataFilter @ref="dataFilter" Auto=auto Data="@orders" TItem="Order" ViewChanged=@(view => filteredOrders = view.ToList())
FilterCaseSensitivity="FilterCaseSensitivity.CaseInsensitive">
<Properties>
<RadzenDataFilterProperty TItem="Order" Property="OrderID" Title="Order ID" FilterValue="@selectedIds"
Type="typeof(IEnumerable<int>)" FilterOperator="FilterOperator.Contains">
<FilterTemplate>
<RadzenDropDown @bind-Value=@selectedIds Style="width:100%;"
Change=@OnSelectedIdsChange Data="@(orderIds)" AllowClear="true" Multiple="true" />
</FilterTemplate>
</RadzenDataFilterProperty>
<RadzenDataFilterProperty TItem="Order" Property="Employee" Title="Employee " />
<RadzenDataFilterProperty TItem="Order" Property="StaffCount" Title="Number of Staff" FilterValue="@selectedStaffCountIds"
Type="typeof(IEnumerable<int?>)" FilterOperator="FilterOperator.Contains">
<FilterTemplate>
<RadzenDropDown @bind-Value=@selectedStaffCountIds Style="width:100%;"
Change=@OnSelectedStaffCountIdsChange Data="@(staffCountIds)" AllowClear="true" Multiple="true" />
</FilterTemplate>
</RadzenDataFilterProperty>
</Properties>
</RadzenDataFilter>
</RadzenCard>
<RadzenDataGrid @ref="ordersGrid" AllowPaging="true" AllowSorting="true" Data="@(filteredOrders ?? orders)" TItem="Order"
ColumnWidth="200px" PageSize="20" Style="height: 500px">
<Columns>
<RadzenDataGridColumn Width="50px" TItem="Order" Title="#" Filterable="false" Sortable="false" TextAlign="TextAlign.Center" Frozen=true>
<Template>
@(orders.IndexOf(context) + 1)
</Template>
</RadzenDataGridColumn>
<RadzenDataGridColumn Width="200px" TItem="Order" Property="OrderID" Title="Order ID" />
<RadzenDataGridColumn Width="200px" TItem="Order" Property="Company" Title="Company" />
<RadzenDataGridColumn TItem="Order" Property="Employee" Title="Employee">
<Template Context="order">
@order.Employee
</Template>
</RadzenDataGridColumn>
<RadzenDataGridColumn TItem="Order" Property="StaffCount" Title="StaffCount" />
</Columns>
</RadzenDataGrid>
</div>
</div>
</div>
@code {
bool auto = true;
RadzenDataFilter<Order> dataFilter;
IList<Order> filteredOrders;
IList<Order> orders;
RadzenDataGrid<Order> ordersGrid;
IEnumerable<int> selectedIds;
IEnumerable<int> orderIds;
IEnumerable<int?> staffCountIds;
IEnumerable<int> selectedStaffCountIds;
void OnSelectedIdsChange(object value)
{
if (selectedIds != null && !selectedIds.Any())
{
selectedIds = null;
}
}
void OnSelectedStaffCountIdsChange(object value)
{
if (selectedStaffCountIds != null && !selectedStaffCountIds.Any())
{
selectedStaffCountIds = null;
}
}
protected override void OnInitialized()
{
var list = new List<Order>();
list.Add(new Order { OrderID = 1024, Company = "ABC Company", Employee = "Steven Buchanan", StaffCount = 64 });
list.Add(new Order { OrderID = 2105, Company = "Carson Inc.", Employee = "Gary Jones", StaffCount = 202 });
list.Add(new Order { OrderID = 1025, Company = "Pearson Furniture", Employee = "Alison McArthur", StaffCount = 24 });
list.Add(new Order { OrderID = 1026, Company = "Gary's Automotive", Employee = "Mireille St-Arnaud", StaffCount = 8 });
list.Add(new Order { OrderID = 1899, Company = "142823 LLC", Employee = "Philippe Massey", StaffCount = 18 });
list.Add(new Order { OrderID = 1019, Company = "Happy Coffee Imporium", Employee = "", StaffCount = (int?)null });
orders = list.ToList();
orderIds = orders.Select(o => o.OrderID).Distinct();
staffCountIds = orders.Select(o => o.StaffCount).Distinct();
}
public class Order
{
public int OrderID { get; set; }
public string Employee { get; set; }
public string Company { get; set; }
public int? StaffCount { get; set; }
}
}