Hello,
the contains operator for string fields does not work for me.
It acts like a StartsWith, not like a Contains...
For example name: "Hans Mustermann", search for "Han" works, but "Muster" does not work at all.
What am i doing wrong?
|
<SfGrid DataSource="@Orders" AllowFiltering="true">
<GridFilterSettings Mode="FilterBarMode.Immediate"
ImmediateModeDelay=@WaitMsecondsBeforeGoSearchByFilter
Type="Syncfusion.Blazor.Grids.FilterType.FilterBar"
Operators=Operator.Contains>
<GridFilterColumns>
<GridFilterColumn Field="CustomerID" MatchCase=false Operator="Operator.Contains" Predicate="OR" Value="@val"></GridFilterColumn>
<GridFilterColumn Field="ShipCity" MatchCase=false Operator=Operator.Contains Predicate="OR" Value="@cityval"></GridFilterColumn>
<GridFilterColumn Field="ShipCountry" MatchCase=false Operator=Operator.Contains Predicate="OR" Value="@countryval"></GridFilterC
</GridFilterColumns>
</GridFilterSettings>
<GridColumns>
<GridColumn Field=@nameof(Order.OrderID) HeaderText="Order ID" TextAlign="TextAlign.Right" Width="120"></GridColumn>
<GridColumn Field=@nameof(Order.CustomerID) HeaderText="Customer Name" Width="150" MinWidth="150" ClipMode="ClipMode.Clip"></GridColumn>
. . .
</GridColumns>
</SfGrid>
@code{
public List<Order> Orders { get; set; }
double WaitMsecondsBeforeGoSearchByFilter { get; set; } = 1000;
public string val = "Muster";
public string cityval = "London";
public string countryval = "JAPAN";
protected override void OnInitialized()
{
Orders = Enumerable.Range(1, 75).Select(x => new Order()
{
OrderID = 1000 + x,
CustomerID = (new string[] { "ALFKI", "Hans Mustermann", "ANTON", "BLONP", "BOLID" })[new Random().Next(5)],
Freight = 2.1 * x,
OrderDate = (new DateTime[] { new DateTime(2010, 5, 1), new DateTime(2010, 5, 2), new DateTime(2010, 5, 3), })[new Random().Next(3)]
}).ToList();
}
. ..
} |
|
|
Hello Rahul, thank you for your answer.
Sadly, your provided project isn't working either, video attached.
I have not changed your code, i am running dotnet 5, blazor wasm in chrome
|
<SfGrid DataSource="@Orders" AllowFiltering="true">
<GridFilterSettings Mode="FilterBarMode.Immediate"
ImmediateModeDelay=@WaitMsecondsBeforeGoSearchByFilter
Type="Syncfusion.Blazor.Grids.FilterType.FilterBar"
Operators=Operator.Contains>
. ..
<GridColumns>
<GridColumn Field=@nameof(Order.OrderID) HeaderText="Order ID" TextAlign="TextAlign.Right" Width="120"></GridColumn>
<GridColumn Field=@nameof(Order.CustomerID) HeaderText="Customer Name" Width="150" MinWidth="150" ClipMode="ClipMode.Clip"
FilterSettings="@(new FilterSettings{ Operator = Operator.Contains })"></GridColumn>
. ..
</GridColumns>
</SfGrid> |