[DataGrid] Fix resizing to initial column widths issue (#2561)
* Use dictionary for initialColumnsWidths * Add cleanup
This commit is contained in:
Родитель
86b74e23f9
Коммит
ac17756278
|
@ -18,6 +18,7 @@
|
|||
<ColumnsCollectedNotifier TGridItem="TGridItem" />
|
||||
|
||||
<fluent-data-grid @ref=_gridReference
|
||||
id="@Id"
|
||||
no-tabbing=@NoTabbing
|
||||
generate-header="none"
|
||||
grid-template-columns=@_internalGridTemplateColumns
|
||||
|
|
|
@ -280,6 +280,7 @@ public partial class FluentDataGrid<TGridItem> : FluentComponentBase, IHandleEve
|
|||
[DynamicDependency(DynamicallyAccessedMemberTypes.All, typeof(DataGridRowFocusEventArgs))]
|
||||
public FluentDataGrid()
|
||||
{
|
||||
Id = Identifier.NewId();
|
||||
_columns = [];
|
||||
_internalGridContext = new(this);
|
||||
_currentPageItemsChanged = new(EventCallback.Factory.Create<PaginationState>(this, RefreshDataCoreAsync));
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
var initialColumnsWidths = '';
|
||||
let initialColumnsWidths = {};
|
||||
var latestGridElement = null;
|
||||
|
||||
export function init(gridElement) {
|
||||
|
@ -7,7 +7,7 @@ export function init(gridElement) {
|
|||
};
|
||||
|
||||
if (gridElement.querySelectorAll('.column-header.resizable').length > 0) {
|
||||
initialColumnsWidths = gridElement.gridTemplateColumns;
|
||||
initialColumnsWidths[gridElement.id] = gridElement.gridTemplateColumns ;
|
||||
enableColumnResizing(gridElement);
|
||||
}
|
||||
|
||||
|
@ -63,6 +63,7 @@ export function init(gridElement) {
|
|||
document.body.removeEventListener('click', bodyClickHandler);
|
||||
document.body.removeEventListener('mousedown', bodyClickHandler);
|
||||
document.body.removeEventListener('keydown', keyDownHandler);
|
||||
delete initialColumnsWidths[gridElement.id];
|
||||
}
|
||||
};
|
||||
}
|
||||
|
@ -159,7 +160,7 @@ export function enableColumnResizing(gridElement) {
|
|||
|
||||
export function resetColumnWidths(gridElement) {
|
||||
|
||||
gridElement.gridTemplateColumns = initialColumnsWidths;
|
||||
gridElement.gridTemplateColumns = initialColumnsWidths[gridElement.id];
|
||||
}
|
||||
|
||||
export function resizeColumnDiscrete(gridElement, column, change) {
|
||||
|
@ -231,7 +232,7 @@ export function autoFitGridColumns(gridElement, columnCount) {
|
|||
gridElement.setAttribute("grid-template-columns", gridTemplateColumns);
|
||||
gridElement.classList.remove("auto-fit");
|
||||
|
||||
initialColumnsWidths = gridTemplateColumns;
|
||||
initialColumnsWidths[gridElement.id] = gridTemplateColumns;
|
||||
}
|
||||
|
||||
export function resizeColumnExact(gridElement, column, width) {
|
||||
|
|
Загрузка…
Ссылка в новой задаче