|
1 | 1 | <Grid TItem="Employee1"
|
| 2 | + @ref="grid" |
2 | 3 | Class="table table-hover table-bordered table-striped"
|
3 | 4 | DataProvider="EmployeesDataProvider"
|
4 | 5 | AllowFiltering="true"
|
|
29 | 30 | </GridColumns>
|
30 | 31 |
|
31 | 32 | </Grid>
|
| 33 | +<Button Type="ButtonType.Button" Color="ButtonColor.Primary" @onclick="AddEmployee"> Add Employee </Button> |
| 34 | +<Button Type="ButtonType.Button" Color="ButtonColor.Danger" @onclick="RemoveEmployee"> Remove Employee </Button> |
32 | 35 |
|
33 | 36 | <div class="mt-3">
|
34 | 37 | Selected Items Count: @selectedEmployees.Count
|
|
45 | 48 | </div>
|
46 | 49 |
|
47 | 50 | @code {
|
48 |
| - private IEnumerable<Employee1> employees = default!; |
| 51 | + Grid<Employee1> grid = default!; |
| 52 | + private List<Employee1>? employees = default!; |
49 | 53 |
|
50 | 54 | private HashSet<Employee1> selectedEmployees = new();
|
51 | 55 |
|
|
57 | 61 | return await Task.FromResult(request.ApplyTo(employees));
|
58 | 62 | }
|
59 | 63 |
|
60 |
| - private IEnumerable<Employee1> GetEmployees() |
| 64 | + private List<Employee1> GetEmployees() |
61 | 65 | {
|
62 | 66 | return new List<Employee1>
|
63 | 67 | {
|
|
76 | 80 | };
|
77 | 81 | }
|
78 | 82 |
|
| 83 | + private async Task AddEmployee() |
| 84 | + { |
| 85 | + // for the same employees collection, we are adding an object |
| 86 | + // explicit grid refresh required |
| 87 | + employees!.Add(CreateEmployee()); |
| 88 | + await grid.RefreshDataAsync(); |
| 89 | + } |
| 90 | + |
| 91 | + private Employee1 CreateEmployee() |
| 92 | + { |
| 93 | + var emp = new Employee1(); |
| 94 | + emp.Id = employees!.Max(x => x.Id) + 1; |
| 95 | + emp.Name = $"Employee {emp.Id}"; |
| 96 | + emp.Designation = $"QA Engineer {emp.Id}"; |
| 97 | + emp.DOJ = new DateOnly(new Random().Next(1970, 2000), new Random().Next(1, 12), new Random().Next(1, 25)); |
| 98 | + emp.IsActive = true; |
| 99 | + return emp; |
| 100 | + } |
| 101 | + |
| 102 | + |
| 103 | + private async Task RemoveEmployee() |
| 104 | + { |
| 105 | + if (employees!.Count > 0) |
| 106 | + employees!.Remove(employees.Last()); |
| 107 | + |
| 108 | + await grid.RefreshDataAsync(); |
| 109 | + } |
| 110 | + |
| 111 | + |
79 | 112 | private Task OnSelectedItemsChanged(HashSet<Employee1> employees)
|
80 | 113 | {
|
81 | 114 | selectedEmployees = employees is not null && employees.Any() ? employees : new();
|
|
0 commit comments