I have two RadzenDataGridColumns that both have ICollection properties. Both properties have a Filter property named Value. When blazor renders the filter popups for each column, both columns have the same form ID. This results in strange behavior when clicking on each filter since it's references both of them.
I would prefer to not modify my property names since that would affect my database schema and other database functionality.
This is the form ID that is rendered for both datagrids' filter popup
form id="popupwDpJb6heu0Value-form" class="rz-grid-filter"
@using Radzen
@using Radzen.Blazor
<RadzenDataGrid TItem="Product" AllowFiltering="true" AllowColumnResize="true" AllowSorting="true" Data="@products" FilterMode="@FilterMode.CheckBoxList">
<Columns>
<RadzenDataGridColumn Property="@nameof(Product.Name)" Title="Product Name" />
<RadzenDataGridColumn Property="@nameof(Product.Waters)" FilterProperty="@nameof(Water.Value)" Title="Waters"
Type="typeof(IEnumerable<Water>)" FilterOperator="FilterOperator.In" Sortable="false">
<Template>
@(string.Join(", ", context.Waters.Select(res => res.Value)))
</Template>
</RadzenDataGridColumn>
<RadzenDataGridColumn Property="@nameof(Product.Foods)" FilterProperty="@nameof(Food.Value)" Title="Foods"
Type="typeof(IEnumerable<Food>)" FilterOperator="FilterOperator.In" Sortable="false">
<Template>
@(string.Join(", ", context.Foods.Select(res => res.Value)))
</Template>
</RadzenDataGridColumn>
</Columns>
</RadzenDataGrid>
@code {
IEnumerable<Product> products;
protected override void OnInitialized()
{
products = new List<Product>
{
new Product
{
ID = 1,
Name = "Trail Pack",
Waters = new List<Water>
{
new Water { ID = 1, Order = 1, Value = "Still" },
new Water { ID = 2, Order = 2, Value = "Sparkling" }
},
Foods = new List<Food>
{
new Food { ID = 1, Order = 1, Value = "Granola" },
new Food { ID = 2, Order = 2, Value = "Dried Fruit" }
}
},
new Product
{
ID = 2,
Name = "Office Pack",
Waters = new List<Water>
{
new Water { ID = 3, Order = 1, Value = "Purified" },
new Water { ID = 5, Order = 2, Value = "Distilled" },
new Water { ID = 4, Order = 3, Value = "Mineral" }
},
Foods = new List<Food>
{
new Food { ID = 4, Order = 1, Value = "Cheese" },
new Food { ID = 3, Order = 2, Value = "Crackers" }
}
},
new Product
{
ID = 3,
Name = "Kids Pack",
Waters = new List<Water>
{
new Water { ID = 6, Order = 2, Value = "Flavored" },
new Water { ID = 7, Order = 1, Value = "Spring" }
},
Foods = new List<Food>
{
new Food { ID = 5, Order = 1, Value = "Apple Slices" },
new Food { ID = 6, Order = 2, Value = "PB Sandwich" }
}
}
};
}
public class Product
{
public int ID { get; set; }
public string Name { get; set; }
public ICollection<Water> Waters { get; set; } = new List<Water>();
public ICollection<Food> Foods { get; set; } = new List<Food>();
}
public class Water : MySortable
{
public int ID { get; set; }
public double Order { get; set; }
public string Value { get; set; }
}
public class Food : MySortable
{
public int ID { get; set; }
public double Order { get; set; }
public string Value { get; set; }
}
interface MySortable
{
double Order { get; }
string Value { get; }
}
}
https://imgur.com/a/z4XpfTl
I'm not sure if this the same ID that is used in RadzenDataGrid getColumnUniqueId() or RadzenComponent UniqueID
