<SfGrid @ref="DefaultGrid" DataSource="@Orders" AllowSorting="true" AllowPdfExport="true" AllowPaging="true"
Toolbar="@(new List<string>() { "Add","Edit","Delete","Update","Cancel"})">
<GridEvents OnBatchSave="BatchSave" TValue="Order"></GridEvents>
..
..
..
</SfGrid>
@code{
private List<Order> CurrentView { get; set; }
//It will have the Customized Data
private async Task BatchSave() {
var BatchChanges = await DefaultGrid.GetBatchChanges();
CurrentView = await DefaultGrid.GetCurrentViewRecords();
//To do changes in whole datasource, use the DataSource property here
foreach (var record in (List<Order>)BatchChanges.ChangedRecords)
{
var ChangedData = CurrentView.Where(data => (data as Order).OrderID == record.OrderID).FirstOrDefault();
(ChangedData as Order).CustomerID = record.CustomerID;
(ChangedData as Order).OrderDate = record.OrderDate;
(ChangedData as Order).Freight = record.Freight;
}
foreach (var record in (List<Order>)BatchChanges.AddedRecords)
{
CurrentView.Add(record);
}
foreach (var record in (List<Order>)BatchChanges.DeletedRecords)
{
CurrentView.Remove(record);
}
}
} |