From 11374347d304df7769449db60f1c398aa50595d2 Mon Sep 17 00:00:00 2001 From: OlgunR Date: Wed, 15 Apr 2026 10:57:28 +0200 Subject: [PATCH] Refactor band editor into reusable BandEditor component Extract band editor UI and logic from CatalogsGrid.razor and MassDataGrid.razor into a new BandEditor.razor component. This centralizes band management features (add/remove bands, edit captions, assign columns, save/reset layout) and reduces code duplication, improving maintainability and reusability. Existing UI and event handling remain functionally unchanged. --- .../Components/BandEditor.razor | 55 +++++++++++++++++++ .../Components/CatalogsGrid.razor | 49 ++++------------- .../Components/MassDataGrid.razor | 49 ++++------------- 3 files changed, 77 insertions(+), 76 deletions(-) create mode 100644 DbFirst.BlazorWebApp/Components/BandEditor.razor diff --git a/DbFirst.BlazorWebApp/Components/BandEditor.razor b/DbFirst.BlazorWebApp/Components/BandEditor.razor new file mode 100644 index 0000000..4181492 --- /dev/null +++ b/DbFirst.BlazorWebApp/Components/BandEditor.razor @@ -0,0 +1,55 @@ +
+ + @if (IsExpanded) + { +
+
+ + + +
+ @foreach (var band in Bands) + { +
+ + +
+ } + + @foreach (var column in Columns) + { + + + + } + +
+ } +
+ +@code { + private bool IsExpanded { get; set; } + + [Parameter, EditorRequired] public List Bands { get; set; } = new(); + [Parameter, EditorRequired] public List BandOptions { get; set; } = new(); + [Parameter, EditorRequired] public List Columns { get; set; } = new(); + [Parameter, EditorRequired] public Func GetColumnBand { get; set; } = _ => string.Empty; + [Parameter, EditorRequired] public bool CanSave { get; set; } + + [Parameter] public EventCallback OnAddBand { get; set; } + [Parameter] public EventCallback OnSaveLayout { get; set; } + [Parameter] public EventCallback OnResetLayout { get; set; } + [Parameter] public EventCallback OnRemoveBand { get; set; } + [Parameter] public EventCallback<(BandDefinition Band, string Value)> OnBandCaptionChanged { get; set; } + [Parameter] public EventCallback<(string FieldName, string? BandId)> OnColumnBandChanged { get; set; } +} \ No newline at end of file diff --git a/DbFirst.BlazorWebApp/Components/CatalogsGrid.razor b/DbFirst.BlazorWebApp/Components/CatalogsGrid.razor index c8ba429..30f092d 100644 --- a/DbFirst.BlazorWebApp/Components/CatalogsGrid.razor +++ b/DbFirst.BlazorWebApp/Components/CatalogsGrid.razor @@ -24,44 +24,17 @@ else if (items.Count == 0) } else { -
- - @if (bandEditorExpanded) - { -
-
- - - -
- @foreach (var band in bandLayout.Bands) - { -
- - -
- } - - @foreach (var column in ColumnDefinitions) - { - - - - } - -
- } -
+
- - @if (bandEditorExpanded) - { -
-
- - - -
- @foreach (var band in bandLayout.Bands) - { -
- - -
- } - - @foreach (var column in ColumnDefinitions) - { - - - - } - -
- } -
+
Datensätze je Seite: