diff --git a/ComponentPractice/ComponentPractice/.config/dotnet-tools.json b/ComponentPractice/ComponentPractice/.config/dotnet-tools.json
new file mode 100644
index 0000000..4f257cf
--- /dev/null
+++ b/ComponentPractice/ComponentPractice/.config/dotnet-tools.json
@@ -0,0 +1,13 @@
+{
+ "version": 1,
+ "isRoot": true,
+ "tools": {
+ "dotnet-ef": {
+ "version": "8.0.6",
+ "commands": [
+ "dotnet-ef"
+ ],
+ "rollForward": false
+ }
+ }
+}
\ No newline at end of file
diff --git a/ComponentPractice/ComponentPractice/Components/Layout/NavMenu.razor b/ComponentPractice/ComponentPractice/Components/Layout/NavMenu.razor
index bd49fb0..a9f1401 100644
--- a/ComponentPractice/ComponentPractice/Components/Layout/NavMenu.razor
+++ b/ComponentPractice/ComponentPractice/Components/Layout/NavMenu.razor
@@ -55,6 +55,12 @@
DataGrid
+
+
+
+ DataGrid Adv.
+
+
diff --git a/ComponentPractice/ComponentPractice/Components/Pages/DataGridAdv.razor b/ComponentPractice/ComponentPractice/Components/Pages/DataGridAdv.razor
new file mode 100644
index 0000000..9d32622
--- /dev/null
+++ b/ComponentPractice/ComponentPractice/Components/Pages/DataGridAdv.razor
@@ -0,0 +1,89 @@
+@page "/datagridadv"
+@using System.Linq.Dynamic.Core
+
+@inject InMemoryData data;
+
+@rendermode RenderMode.InteractiveServer
+
+
+ DataGrid LoadData Event
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+@code {
+ RadzenDataGrid grid;
+ IEnumerable employees;
+ int count;
+ bool isLoading = false;
+
+ List titles = new List { "Junior", "Mid", "Senior", "Lead", "Chief" };
+ IEnumerable selectedTitles;
+
+ async Task OnSelectedTitlesChange(object value)
+ {
+ if (selectedTitles != null && !selectedTitles.Any())
+ selectedTitles = null;
+
+ await grid.FirstPage();
+ }
+
+ async Task Reset()
+ {
+ grid.Reset(true);
+ await grid.FirstPage(true);
+ }
+
+ async Task LoadData(LoadDataArgs args)
+ {
+ isLoading = true;
+
+ await Task.Yield();
+
+ employees = await data.GetEmployeeDataAsync(100);
+ var query = employees.AsQueryable();
+
+ if (!string.IsNullOrEmpty(args.Filter))
+ query = query.Where(args.Filter);
+
+ if (!string.IsNullOrEmpty(args.OrderBy))
+ query = query.OrderBy(args.OrderBy);
+
+ count = query.Count();
+
+ employees = query.Skip(args.Skip.Value).Take(args.Top.Value).ToList();
+
+ isLoading = false;
+ }
+}
diff --git a/ComponentPractice/ComponentPractice/Program.cs b/ComponentPractice/ComponentPractice/Program.cs
index add23c8..7f2c5ac 100644
--- a/ComponentPractice/ComponentPractice/Program.cs
+++ b/ComponentPractice/ComponentPractice/Program.cs
@@ -36,6 +36,8 @@ namespace ComponentPractice
app.MapRazorComponents()
.AddInteractiveServerRenderMode();
+ //app.Urls.Add("http://*:5000");
+
app.Run();
}
}