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.
This commit is contained in:
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user