Skip to content

Commit 6d8e120

Browse files
ArgoZhangljmay168
authored andcommitted
fix(Table): 列被隐藏再取消隐藏后,拖动列改变列顺序的功能不正常 #7176
1 parent b93acd5 commit 6d8e120

File tree

4 files changed

+30
-1
lines changed

4 files changed

+30
-1
lines changed

src/BootstrapBlazor.Server/BootstrapBlazor.Server.csproj

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -62,7 +62,7 @@
6262
<PackageReference Include="BootstrapBlazor.OfficeViewer" Version="10.0.0" />
6363
<PackageReference Include="BootstrapBlazor.OnScreenKeyboard" Version="10.0.0" />
6464
<PackageReference Include="BootstrapBlazor.OpcDa" Version="10.0.0" />
65-
<PackageReference Include="BootstrapBlazor.PdfReader" Version="10.0.1-beta02" />
65+
<PackageReference Include="BootstrapBlazor.PdfReader" Version="10.0.1-beta03" />
6666
<PackageReference Include="BootstrapBlazor.PdfViewer" Version="10.0.0" />
6767
<PackageReference Include="BootstrapBlazor.Player" Version="10.0.1" />
6868
<PackageReference Include="BootstrapBlazor.RDKit" Version="10.0.0" />

src/BootstrapBlazor/Components/Table/Table.razor.Checkbox.cs

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -143,6 +143,11 @@ protected async Task OnCheck(CheckboxState state, TItem val)
143143
/// </summary>
144144
private bool _resetColumns;
145145

146+
/// <summary>
147+
/// 是否重置列拖拽事件 <see cref="OnAfterRenderAsync(bool)"/> 方法中重置为 false
148+
/// </summary>
149+
private bool _resetColDragListener;
150+
146151
/// <summary>
147152
/// 获得/设置 列改变显示状态回调方法
148153
/// </summary>
@@ -155,6 +160,10 @@ private async Task OnToggleColumnVisible(string columnName, bool visible)
155160
{
156161
_resetColumns = true;
157162
}
163+
if (AllowDragColumn && visible)
164+
{
165+
_resetColDragListener = true;
166+
}
158167
if (!string.IsNullOrEmpty(ClientTableName))
159168
{
160169
await InvokeVoidAsync("saveColumnList", ClientTableName, _visibleColumns);

src/BootstrapBlazor/Components/Table/Table.razor.cs

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1042,6 +1042,12 @@ protected override async Task OnAfterRenderAsync(bool firstRender)
10421042
await InvokeVoidAsync("resetColumn", Id);
10431043
}
10441044

1045+
if (_resetColDragListener)
1046+
{
1047+
_resetColDragListener= false;
1048+
await InvokeVoidAsync("resetColDragListener", Id);
1049+
}
1050+
10451051
if (_bindResizeColumn)
10461052
{
10471053
_bindResizeColumn = false;

src/BootstrapBlazor/Components/Table/Table.razor.js

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -180,6 +180,13 @@ export function resetColumn(id) {
180180
}
181181
}
182182

183+
export function resetColDragListener(id) {
184+
const table = Data.get(id)
185+
if (table) {
186+
setDraggable(table)
187+
}
188+
}
189+
183190
export function bindResizeColumn(id) {
184191
const table = Data.get(id)
185192
if (table) {
@@ -924,6 +931,13 @@ const setDraggable = table => {
924931
let index = 0
925932
table.dragColumns = [...table.tables[0].querySelectorAll('thead > tr > th')].filter(i => i.draggable)
926933
table.dragColumns.forEach(col => {
934+
EventHandler.off(col, 'dragstart')
935+
EventHandler.off(col, 'dragend')
936+
EventHandler.off(col, 'drop')
937+
EventHandler.off(col, 'dragenter')
938+
EventHandler.off(col, 'dragover')
939+
EventHandler.off(col, 'dragleave')
940+
927941
EventHandler.on(col, 'dragstart', e => {
928942
col.parentNode.classList.add('table-dragging')
929943
col.classList.add('table-drag')

0 commit comments

Comments
 (0)