I have an RadzenDropDown component that I am using in a FilterTemplate for a RadzenDataGridColumn. I am able to populate the drop down and select the value without issue but the filter does not seem to be applied when a value is selected. If I trigger the data grid to reload by entering a value for a different filter, reordering the columns, or calling RadzenDataGrid.Reload via a button or on the RadzenDropDown OnChange event then it applies the filter as expected. It just does not do it when a value is selected in the drop down without tying into the OnChange event and calling reload on the grid. Is this the expected behavior?
@page "/bins"
<PageTitle>Bins</PageTitle>
<RadzenDataGrid @ref="_Grid"
Data="@_Bins" AllowSorting="true" AllowFiltering="true"
FilterMode="FilterMode.Simple" AllowVirtualization="true"
AllowPaging="true" PageSize="15" TItem="Bin" ColumnWidth="200px">
<Columns>
<RadzenDataGridColumn TItem="Bin" Property="BinNumber" Type="typeof(long)" Title="Bin Number" Frozen="true" SortOrder="SortOrder.Descending" />
<RadzenDataGridColumn TItem="Bin" Filterable="true"
FilterValue="@_PartNumberFilter" FilterProperty="PartNumber"
Property="PartNumber" Title="Part Number">
<FilterTemplate>
<RadzenDropDown @bind-Value="@_PartNumberFilter" Style="width:100%;" AllowClear="true" AllowFiltering="true"
Data="@_PartNumbers" />
</FilterTemplate>
</RadzenDataGridColumn>
<RadzenDataGridColumn TItem="Bin" Property="Quantity" Title="Quantity" />
<RadzenDataGridColumn TItem="Bin" Property="Capacity" Title="Capacity" />
<RadzenDataGridColumn TItem="Bin" Property="Created" Title="Created" />
</Columns>
</RadzenDataGrid>
@code {
class Bin
{
public long BinNumber { get; set; }
public string PartNumber { get; set; }
public int Quantity { get; set; }
public int Capacity { get; set; }
public DateTime Created { get; set; }
}
RadzenDataGrid<Bin> _Grid;
IEnumerable<Bin> _Bins;
IEnumerable<string> _PartNumbers;
string _PartNumberFilter;
protected override async Task OnInitializedAsync()
{
_Bins = new Bin[]
{
new Bin()
{
BinNumber = 1,
PartNumber = "L1234567",
Quantity = 70,
Capacity = 70,
Created = DateTime.Now
},
new Bin()
{
BinNumber = 2,
PartNumber = "L7654321",
Quantity = 80,
Capacity = 80,
Created = DateTime.Now
},
new Bin()
{
BinNumber = 3,
PartNumber = "L1234567",
Quantity = 66,
Capacity = 70,
Created = DateTime.Now
},
new Bin()
{
BinNumber = 4,
PartNumber = "L7654321",
Quantity = 77,
Capacity = 80,
Created = DateTime.Now
},
new Bin()
{
BinNumber = 5,
PartNumber = "L0000001",
Quantity = 5,
Capacity = 100,
Created = DateTime.Now
},
};
_PartNumbers = new string[]
{
"L0000001", "L1234567", "L7654321"
};
}
}