From 35925a58118daf91659fc0f7c37a9a2a39a650d3 Mon Sep 17 00:00:00 2001 From: Tony-ST0754 <6914529@qq.com> Date: Fri, 14 Aug 2026 12:46:12 +0800 Subject: [PATCH 1/2] =?UTF-8?q?fix(table):=E4=BF=AE=E5=A4=8D=E8=B0=83?= =?UTF-8?q?=E6=95=B4=E5=88=97=E5=AE=BD=E6=97=B6=E5=81=B6=E5=B0=94=E9=A1=B5?= =?UTF-8?q?=E9=9D=A2=E5=85=83=E7=B4=A0=E4=B8=8A=E5=88=97=E5=AE=BD=E6=97=A0?= =?UTF-8?q?=E5=80=BC=E7=9A=84=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit fix:修复调整列宽时偶尔页面元素上列宽无值的问题 --- src/BootstrapBlazor/Components/Table/Table.razor.js | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/src/BootstrapBlazor/Components/Table/Table.razor.js b/src/BootstrapBlazor/Components/Table/Table.razor.js index 31a6c9649a2..957e61d91c5 100644 --- a/src/BootstrapBlazor/Components/Table/Table.razor.js +++ b/src/BootstrapBlazor/Components/Table/Table.razor.js @@ -69,7 +69,13 @@ export async function reset(id) { } table.minWidthRaf = requestAnimationFrame(() => { table.minWidthRaf = null; - applyColumnMinWidth(table); + // 浏览器窗口变化时,不应触发列宽及表格宽度修改 + // 如果这里执行,会导致用户在拖动列宽时,列宽修复多次执行, + // 期望的行为应该是,用户拖动列宽完毕后,计算全部列宽并回调重新渲染 + // 因为下面这句倒导偶尔情况下页面中元素colgroup中col宽度为空,各列宽上没有正确的值,给人以为是异步导致的错觉, + // 实际为组件后台已正确给了列宽值并渲染,因为这里的缘故,导致js文件中第1210行的判断成立,从而导致执行 setAutoColWidths 时, + // 页面元素上colgroup中col宽度为空 + //applyColumnMinWidth(table); }); }); table.minWidthObserver.observe(table.body); @@ -620,7 +626,7 @@ const autoFitColumnWidth = async (table, col) => { const index = indexOfCol(col); let rows = null; let maxWidth = getColumnMaxCellWidth(table, index); - + if (table.options.fitColumnWidthIncludeHeader) { const th = getColumnHeader(col); maxWidth = Math.max(maxWidth, getCellWidth(th)); From d3d676279af9360cbd1b703fe72e58282f02b631 Mon Sep 17 00:00:00 2001 From: Tony-ST0754 <6914529@qq.com> Date: Fri, 14 Aug 2026 13:35:31 +0800 Subject: [PATCH 2/2] =?UTF-8?q?fix(table):=E6=9B=B4=E6=94=B9=E6=B5=8F?= =?UTF-8?q?=E8=A7=88=E5=99=A8=E7=AA=97=E5=8F=A3=E5=A4=A7=E5=B0=8F=E6=97=B6?= =?UTF-8?q?=EF=BC=8C=E4=B8=8D=E5=BA=94=E8=AF=A5=E5=B0=86=E5=B7=B2=E7=94=B1?= =?UTF-8?q?=E7=94=A8=E6=88=B7=E8=AE=BE=E7=BD=AE=E8=BF=87=E7=9A=84=E5=88=97?= =?UTF-8?q?=E5=AE=BD=E9=87=8D=E7=BD=AE=E4=B8=BA=E8=87=AA=E5=8A=A8=E8=AE=A1?= =?UTF-8?q?=E7=AE=97=E7=9A=84=E5=88=97=E5=AE=BD=EF=BC=8C=E5=BA=94=E4=BF=9D?= =?UTF-8?q?=E5=AD=98=E7=94=A8=E6=88=B7=E8=AE=BE=E7=BD=AE=E8=BF=87=E7=9A=84?= =?UTF-8?q?=E5=88=97=E5=AE=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit fix:更改浏览器窗口大小时,不应该将已由用户设置过的列宽重置为自动计算的列宽,应保存用户设置过的列宽 --- src/BootstrapBlazor/Components/Table/Table.razor.js | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/src/BootstrapBlazor/Components/Table/Table.razor.js b/src/BootstrapBlazor/Components/Table/Table.razor.js index 957e61d91c5..ecbf634cdad 100644 --- a/src/BootstrapBlazor/Components/Table/Table.razor.js +++ b/src/BootstrapBlazor/Components/Table/Table.razor.js @@ -1189,8 +1189,18 @@ const setColSize = (table, options) => { const minWidth = Math.max(getCellWidth(th) + getHeaderIconsWidth(th), getColumnMaxCellWidth(table, colIndex), columnMinWidth) | 0; autoColumns.push({ colIndex, minWidth }); }); + const state = getColumnStateObject(table); + // 更改浏览器窗口大小时,不应该将已由用户设置过的列宽重置为自动计算的列宽,应保存用户设置过的列宽 + let colInvalid = false; + for (var i = 1; i < state.cols.length; i++) { + if (state.cols[i - 1].width !== state.cols[i].width) { + colInvalid = true; + break; + } + } table.autoColumns = autoColumns; - applyColumnMinWidth(table); + if (!colInvalid) + applyColumnMinWidth(table); } const getHeaderIconsWidth = th => {