Skip to content

Commit 28a58a2

Browse files
committed
chore: update grid batch editing example to 3.0.1
1 parent 88e88f9 commit 28a58a2

File tree

6 files changed

+39
-90
lines changed

6 files changed

+39
-90
lines changed
Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,11 @@
11
<Project Sdk="Microsoft.NET.Sdk.Web">
22

33
<PropertyGroup>
4-
<TargetFramework>netcoreapp3.1</TargetFramework>
5-
<LangVersion>7.3</LangVersion>
4+
<TargetFramework>net5.0</TargetFramework>
65
</PropertyGroup>
76

8-
<ItemGroup>
9-
<PackageReference Include="Telerik.UI.for.Blazor" Version="2.20.0" />
7+
<ItemGroup>
8+
<PackageReference Include="Telerik.UI.for.Blazor" Version="3.0.1" />
109
</ItemGroup>
1110

1211
</Project>

grid/batch-editing/Data/BatchEditingService.cs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -46,8 +46,8 @@ public Task<List<BatchEditModel>> BatchUpdate(
4646

4747
foreach (BatchEditModel item in insertedItems)
4848
{
49-
item.Id = Data.Last().Id + 1;
50-
Data.Add(item);
49+
item.Id = Data.Max(item => item.Id) + 1;
50+
Data.Insert(0, item);
5151
}
5252

5353
foreach (BatchEditModel item in updatedItems)

grid/batch-editing/Data/WeatherForecast.cs

Lines changed: 0 additions & 15 deletions
This file was deleted.

grid/batch-editing/Data/WeatherForecastService.cs

Lines changed: 0 additions & 25 deletions
This file was deleted.

grid/batch-editing/Pages/Index.razor

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -11,16 +11,16 @@
1111
SelectionMode="@GridSelectionMode.Multiple" @bind-SelectedItems="@SelectedItems">
1212
<GridToolBar>
1313
@{
14-
if (GridIsDirty())
14+
<GridCommandButton Command="Add" Icon="add">Add Employee</GridCommandButton>
15+
@if (GridIsDirty)
1516
{
16-
<TelerikButton Icon="save" OnClick="@SaveAllChanges" Primary="true">Save All Changes</TelerikButton>
17+
<TelerikButton Icon="save" OnClick="@SaveAllChanges" ThemeColor="@(ThemeConstants.Button.ThemeColor.Primary)">Save All Changes</TelerikButton>
1718
<TelerikButton Icon="cancel" OnClick="@RevertAllChanges">Cancel All Changes</TelerikButton>
1819
}
19-
<GridCommandButton Command="Add" Icon="add">Add Employee</GridCommandButton>
2020
if (SelectedItems.Count() > 0)
2121
{
2222
<TelerikButton Icon="delete" OnClick="@DeleteSelected">Delete Selected</TelerikButton>
23-
if (SelectionIsDirty())
23+
if (SelectionIsDirty)
2424
{
2525
<TelerikButton Icon="undo" OnClick="@RevertSelected">Revert Selected</TelerikButton>
2626
}
@@ -39,7 +39,7 @@
3939
}
4040
else if (currItem.IsDeleted)
4141
{
42-
<TelerikButton Icon="arrow-up" OnClick="@( () => UndeleteItem(currItem) )">Undelete</TelerikButton>
42+
<TelerikButton Icon="arrow-up" OnClick="@( () => RestoreItem(currItem) )">Restore</TelerikButton>
4343
}
4444
else if (currItem.IsChanged)
4545
{

grid/batch-editing/Pages/Index.razor.cs

Lines changed: 29 additions & 39 deletions
Original file line numberDiff line numberDiff line change
@@ -16,9 +16,12 @@ public class IndexBase : ComponentBase
1616
BatchEditingService theService { get; set; }
1717
public ObservableCollection<BatchEditModel> LocalData { get; set; }
1818
private List<BatchEditModel> PristineItems { get; set; } = new List<BatchEditModel>();
19-
2019
public IEnumerable<BatchEditModel> SelectedItems { get; set; } = Enumerable.Empty<BatchEditModel>();
2120

21+
public bool GridIsDirty => LocalData.ToList().Exists(itm => itm.IsDirty);
22+
23+
public bool SelectionIsDirty => SelectedItems.ToList().Exists(itm => itm.IsDirty);
24+
2225
protected override async Task OnInitializedAsync()
2326
{
2427
await FetchData();
@@ -45,15 +48,14 @@ public void EditHandler(GridCommandEventArgs args)
4548
public void UpdateHandler(GridCommandEventArgs args)
4649
{
4750
BatchEditModel item = (BatchEditModel)args.Item;
48-
BatchEditModel localItem = GetItemFromCollection(LocalData, item);
4951

5052
if (!item.IsDirty)
5153
{
52-
BatchEditModel pristineItm = GetItemFromCollection(PristineItems, item);
53-
if (pristineItm == null)
54-
{
54+
BatchEditModel pristineItem = GetItemFromCollection(PristineItems, item);
55+
if (pristineItem == null)
56+
{
5557
//add only the first time a field is edited, later it is no longer pristine
56-
PristineItems.Add(localItem);
58+
PristineItems.Add(GetItemFromCollection(LocalData, item));
5759
}
5860
}
5961

@@ -64,7 +66,7 @@ public void UpdateHandler(GridCommandEventArgs args)
6466
public void CreateHandler(GridCommandEventArgs args)
6567
{
6668
BatchEditModel item = (BatchEditModel)args.Item;
67-
item.Id = LocalData.Count + 1;
69+
item.Id = LocalData.Max(model => model.Id) + 1;
6870
item.IsNew = true;
6971
LocalData.Insert(0, item);
7072
}
@@ -78,16 +80,6 @@ public void DeleteHandler(GridCommandEventArgs args)
7880
//show notification for undelete
7981
}
8082

81-
public bool GridIsDirty()
82-
{
83-
return LocalData.ToList().Exists(itm => itm.IsDirty);
84-
}
85-
86-
public bool SelectionIsDirty()
87-
{
88-
return SelectedItems.ToList().Exists(itm => itm.IsDirty);
89-
}
90-
9183
private void ChangeLocalItem(BatchEditModel item)
9284
{
9385
var index = LocalData.ToList().FindIndex(i => i.Id == item.Id);
@@ -112,59 +104,58 @@ public async Task SaveAllChanges()
112104
LocalData = new ObservableCollection<BatchEditModel>(newData);
113105
}
114106

115-
public async Task RevertAllChanges()
107+
public void RevertAllChanges()
116108
{
117109
for (int i = LocalData.Count - 1; i >= 0; i--)
118110
{
119111
if (LocalData[i].IsDirty)
120112
{
121-
await RevertItem(LocalData[i]);
113+
RevertItem(LocalData[i]);
122114
}
123115
}
124116
StateHasChanged();
125117
}
126118

127-
public async Task UndeleteItem(BatchEditModel itmToUndelete)
119+
public void RestoreItem(BatchEditModel item)
128120
{
129-
BatchEditModel itm = GetItemFromCollection(LocalData, itmToUndelete);
130-
if (itm != null)
121+
BatchEditModel localItem = GetItemFromCollection(LocalData, item);
122+
if (localItem != null)
131123
{
132-
itm.IsDeleted = false;
124+
localItem.IsDeleted = false;
133125
}
134126
}
135127

136-
public async Task RevertItem(BatchEditModel itmToUndelete)
128+
public void RevertItem(BatchEditModel item)
137129
{
138-
if (itmToUndelete.IsNew)
130+
if (item.IsNew)
139131
{
140-
LocalData.Remove(itmToUndelete);
132+
LocalData.Remove(item);
141133
}
142-
if (itmToUndelete.IsDeleted)
134+
if (item.IsDeleted)
143135
{
144-
itmToUndelete.IsDeleted = false;
145-
ChangeLocalItem(itmToUndelete);
136+
item.IsDeleted = false;
137+
ChangeLocalItem(item);
146138
}
147-
if (itmToUndelete.IsChanged)
139+
if (item.IsChanged)
148140
{
149-
BatchEditModel pristineItem = GetItemFromCollection(PristineItems, itmToUndelete);
141+
BatchEditModel pristineItem = GetItemFromCollection(PristineItems, item);
150142
if (pristineItem != null)
151143
{
152-
itmToUndelete = pristineItem;
153-
ChangeLocalItem(itmToUndelete);
144+
ChangeLocalItem(pristineItem);
154145
PristineItems.Remove(pristineItem);
155146
}
156147
}
157148
}
158149

159-
public async Task RevertSelected()
150+
public void RevertSelected()
160151
{
161152
foreach (BatchEditModel item in SelectedItems)
162153
{
163-
await RevertItem(item);
154+
RevertItem(item);
164155
}
165156
}
166157

167-
public async Task DeleteItem(BatchEditModel itmToDelete)
158+
public void DeleteItem(BatchEditModel itmToDelete)
168159
{
169160
BatchEditModel localItem = GetItemFromCollection(LocalData, itmToDelete);
170161
if (localItem != null)
@@ -184,15 +175,14 @@ public async Task DeleteItem(BatchEditModel itmToDelete)
184175
}
185176
}
186177

187-
public async Task DeleteSelected()
178+
public void DeleteSelected()
188179
{
189180
foreach (BatchEditModel item in SelectedItems)
190181
{
191-
await DeleteItem(item);
182+
DeleteItem(item);
192183
}
193184
}
194185

195-
196186
private BatchEditModel GetItemFromCollection(IList<BatchEditModel> collection, BatchEditModel itmToFind)
197187
{
198188
var index = collection.ToList().FindIndex(i => i.Id == itmToFind.Id);

0 commit comments

Comments
 (0)