<SfGrid @ref="Grid" DataSource="@GridData" Height="600" EnableVirtualization="true" AllowFiltering="true">
<GridEvents TValue="Order" OnActionComplete="ActionComplete"></GridEvents>
<GridAggregates>
<GridAggregate>
<GridAggregateColumns>
<FooterTemplate>
@{
<div>
<p>Sum: @GetSumAggregate()</p>
</div>
}
</FooterTemplate>
</GridAggregateColumn>
</GridAggregateColumns>
</GridAggregate>
</GridAggregates>
<GridColumns>
<GridColumn Field=@nameof(Order.Freight) HeaderText="Freight" Format="C2" TextAlign="TextAlign.Right" Width="120"></GridColumn>
</GridColumns>
</SfGrid>
@code{
public static List<Order> GridData { get; set; }
SfGrid<Order> Grid { get; set; }
List<Order> FilteredRecords = GridData;
public async Task ActionComplete(ActionEventArgs<Order> args) {
if (args.RequestType == Syncfusion.Blazor.Grids.Action.Filtering) {
FilteredRecords = (await Grid.GetFilteredRecords()) as List<Order>;
} else if (args.RequestType == Syncfusion.Blazor.Grids.Action.ClearFiltering) {
FilteredRecords = GridData;
}
}
public string GetSumAggregate() {
return (FilteredRecords.Sum(x=>x.Freight)).ToString();
}
} |