From a0bfd405f02938ec2ff3a13a5d0f967dfbd16947 Mon Sep 17 00:00:00 2001 From: TekH Date: Mon, 21 Sep 2026 17:12:35 +0200 Subject: [PATCH] Simplify row selection logic in EnvelopeSenderPage Refactored row selection logic to leverage DevExpress's native `@bind-SelectedDataItem` for automatic updates to the `_selectedEnvelope` variable. Added `AllowSelectRowByClick` to enable row selection via single click. Updated event handlers for layout auto-loading and auto-saving to use specific methods for different grids. Simplified `OnRowClick` method by removing redundant manual selection logic and retaining toggle behavior for deselecting the same row. Updated comments to reflect these changes. --- .../Pages/EnvelopeSenderPage.razor | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/EnvelopeGenerator.Server/EnvelopeGenerator.Server.Client/Pages/EnvelopeSenderPage.razor b/EnvelopeGenerator.Server/EnvelopeGenerator.Server.Client/Pages/EnvelopeSenderPage.razor index d5aaeb3a..cc6f1f55 100644 --- a/EnvelopeGenerator.Server/EnvelopeGenerator.Server.Client/Pages/EnvelopeSenderPage.razor +++ b/EnvelopeGenerator.Server/EnvelopeGenerator.Server.Client/Pages/EnvelopeSenderPage.razor @@ -187,7 +187,9 @@ PageSize="20" PagerVisible="true" SelectionMode="GridSelectionMode.Single" + AllowSelectRowByClick="true" SelectedDataItem="@_selectedEnvelope" + SelectedDataItemChanged="@((object o) => _selectedEnvelope = o as EnvelopeDto)" RowClick="OnRowClick" RowDoubleClick="OnRowDoubleClick" CustomizeElement="OnCustomizeElement" @@ -306,7 +308,9 @@ PageSize="20" PagerVisible="true" SelectionMode="GridSelectionMode.Single" + AllowSelectRowByClick="true" SelectedDataItem="@_selectedEnvelope" + SelectedDataItemChanged="@((object o) => _selectedEnvelope = o as EnvelopeDto)" RowClick="OnRowClick" RowDoubleClick="OnRowDoubleClick" CustomizeElement="OnCustomizeElement" @@ -573,7 +577,8 @@ // Future: Add custom row coloring based on status if needed } - // Single click: select row, or deselect if already selected (toggle) + // Single click: native DX selection handles the UI instantly. + // We only manage toggle: if the same row is clicked again, deselect. void OnRowClick(GridRowClickEventArgs e) { var clicked = e.Grid.GetDataItem(e.VisibleIndex) as EnvelopeDto; @@ -581,16 +586,11 @@ if (_selectedEnvelope?.Id == clicked.Id) { - // Already selected → deselect + // Same row clicked again → deselect _selectedEnvelope = null; e.Grid.DeselectDataItem(clicked); } - else - { - // New row → select - _selectedEnvelope = clicked; - e.Grid.SelectDataItem(clicked); - } + // Different row: @bind-SelectedDataItem already updated _selectedEnvelope } // Double-click: select the row and open preview popup