@using RadzenBlazorDemos.Data @using RadzenBlazorDemos.Models.Northwind @using Microsoft.EntityFrameworkCore @inherits DbContextPage
Edit Mode:
@code { RadzenDataGrid ordersGrid; IEnumerable orders; IEnumerable customers; IEnumerable employees; DataGridEditMode editMode = DataGridEditMode.Single; List ordersToInsert = new List(); List ordersToUpdate = new List(); void Reset() { ordersToInsert.Clear(); ordersToUpdate.Clear(); } void Reset(Order order) { ordersToInsert.Remove(order); ordersToUpdate.Remove(order); } protected override async Task OnInitializedAsync() { await base.OnInitializedAsync(); customers = dbContext.Customers; employees = dbContext.Employees; orders = dbContext.Orders.Include("Customer").Include("Employee"); } async Task EditRow(Order order) { if (editMode == DataGridEditMode.Single && ordersToInsert.Count() > 0) { Reset(); } ordersToUpdate.Add(order); await ordersGrid.EditRow(order); } void OnUpdateRow(Order order) { Reset(order); dbContext.Update(order); dbContext.SaveChanges(); } async Task SaveRow(Order order) { await ordersGrid.UpdateRow(order); } void CancelEdit(Order order) { Reset(order); ordersGrid.CancelEditRow(order); var orderEntry = dbContext.Entry(order); if (orderEntry.State == EntityState.Modified) { orderEntry.CurrentValues.SetValues(orderEntry.OriginalValues); orderEntry.State = EntityState.Unchanged; } } async Task DeleteRow(Order order) { Reset(order); if (orders.Contains(order)) { dbContext.Remove(order); dbContext.SaveChanges(); await ordersGrid.Reload(); } else { ordersGrid.CancelEditRow(order); await ordersGrid.Reload(); } } async Task InsertRow() { if (editMode == DataGridEditMode.Single) { Reset(); } var order = new Order(); ordersToInsert.Add(order); await ordersGrid.InsertRow(order); } void OnCreateRow(Order order) { dbContext.Add(order); dbContext.SaveChanges(); ordersToInsert.Remove(order); } }