|
|
<SfGrid @ref="Grid" DataSource="@Orders" AllowSorting="true" ShowColumnMenu="true" AllowFiltering="true" AllowPaging="true" Height="315">
<GridFilterSettings Type="Syncfusion.Blazor.Grids.FilterType.Menu"></GridFilterSettings>
<GridEvents QueryCellInfo="CellInfoHandler" TValue="Order"></GridEvents>
<GridColumns>
<GridColumn Field=@nameof(Order.OrderID) HeaderText="Order ID" TextAlign="TextAlign.Right" Width="120"></GridColumn>
<GridColumn Field=@nameof(Order.OrderDate) HeaderText=" Order Date" Format="d" Type="ColumnType.Date" TextAlign="TextAlign.Right" Width="130"></GridColumn>
<GridColumn Field=@nameof(Order.Freight) HeaderText="Freight" Format="C2" TextAlign="TextAlign.Right" Width="120"></GridColumn>
</GridColumns>
</SfGrid>
<style>
.filtered{
background-color: lightcoral;
}
</style>
@code{
SfGrid<Order> Grid { get; set; }
public List<Order> Orders { get; set; }
public void CellInfoHandler(QueryCellInfoEventArgs<Order> Args)
{
var FilterCols = Grid.FilterSettings?.Columns; // will provide filtered column details.
if (FilterCols?.Count > 0) // when column is filtered
{
for(var i = 0; i < FilterCols.Count;i++) // loop the for multiple filtered column
{
if(Args.Column.Field == FilterCols[i].Field) // check with current column
{
Args.Cell.AddClass(new string[] { "filtered" }); // add specific class name to content
}
}
}
} |