|
<button @onclick="Filter"> Filtering</button>
<button @onclick="ClearFilter"> Clear Filtering</button>
<SfGrid @ref="Grid" Query="GridQuery" DataSource="@Orders" AllowFiltering="true">
<GridEvents OnActionBegin="ActionBeginHandler" TValue="Order"></GridEvents>
<GridColumns>
. . .
</GridColumns>
</SfGrid>
@code{
public List<Order> Orders { get; set; }
public string val = "ANANTR";
SfGrid<Order> Grid { get; set; }
public Query GridQuery { get; set; }
. . .
public void Filter()
{
GridQuery = new Query();
var ColPre = new WhereFilter();
var last = new WhereFilter();
List<WhereFilter> OrPredicate = new List<WhereFilter>();
List<WhereFilter> AndPredicate = new List<WhereFilter>();
OrPredicate.Add(new WhereFilter()
{
Field = "OrderID",
value = 1001,
Operator = "equal",
IgnoreCase = true
});
AndPredicate.Add(new WhereFilter()
{
Field = "CustomerID",
value = "ALFKI",
Operator = "equal",
IgnoreCase = true
});
AndPredicate.Add(new WhereFilter()
{
Field = "Freight",
value = 2.30,
Operator = "equal",
IgnoreCase = true
});
ColPre = WhereFilter.And(AndPredicate);
last = WhereFilter.Or(OrPredicate);
GridQuery = new Query().Where(ColPre.Or(last)); //passing the generated predicate in Grid query
}
public void ClearFilter()
{
GridQuery = new Query(); // for clearing the filter
}
} |
|
<SfGrid @ref="Grid" Query="GridQuery" DataSource="@Orders" AllowFiltering="true">
<GridEvents OnActionBegin="ActionBeginHandler" TValue="Order"></GridEvents>
<GridColumns>
<GridColumn Field=@nameof(Order.OrderID) HeaderText="Order ID" TextAlign="TextAlign.Right" Width="120">
<FilterTemplate>
<SfTextBox Placeholder='First Name' ValueChange="ValueChange1"></SfTextBox>
</FilterTemplate>
</GridColumn>
<FilterTemplate>
<SfTextBox Placeholder='First Name' ValueChange="ValueChange2"></SfTextBox>
</FilterTemplate>
</GridColumn>
. . .
</GridColumns>
</SfGrid>
@code{
. . .
public void ValueChange1(ChangedEventArgs args)
{
if (args.Value == "")
{
Grid.ClearFiltering();
}
else
{
Grid.FilterByColumn("OrderID", "equal", args.Value, "and", false, true);
}
}
. ..
} |