Syncfusion Blazor层级网格恢复持久化设置后展开/折叠图标重叠问题
Syncfusion Blazor 层级网格恢复持久化设置后展开图标与列重叠问题
问题描述
我在使用带有父子层级(通过DetailTemplate实现)的Syncfusion Blazor Grid时遇到异常:恢复已保存的网格设置(包括列可见性、宽度、筛选、排序等)后,左侧的层级展开/折叠图标会与第一列可见列的内容重叠,遮挡部分文本。该问题仅在加载持久化设置后出现,网格初始渲染时完全正常。
复现步骤
- 打开带有父子结构的Syncfusion网格
- 隐藏若干列
- 将前几列可见列调整为较小宽度
- 通过自定义或内置持久化功能保存当前网格状态
- 刷新页面或重新打开页面
- 调用
SetPersistDataAsync()方法恢复保存的状态 - 观察到层级展开/折叠图标与第一列可见列的内容发生重叠
预期行为
层级展开/折叠图标应占用独立的预留空间,不会重叠或遮挡第一列的内容。
实际行为
展开/折叠图标直接渲染在第一列内容的上方,导致部分文本无法正常读取。
代码示例
简化网格配置
<SfGrid TItem="TransactionDto" @ref="Grid" AllowResizing="true" EnablePersistence="false"> <GridTemplates> <DetailTemplate> <!-- 子网格内容 --> </DetailTemplate> </GridTemplates> <GridColumns> <GridColumn Field="TransactionName" Width="120" /> <GridColumn Field="TotalCostBasis" Width="150" /> </GridColumns> </SfGrid>
恢复持久化状态代码
var persistedData = await LoadGridSettingsAsync(); await Grid.SetPersistDataAsync(persistedData);
已尝试的无效解决方案
- 调用
Grid.Refresh()方法 - 调用
RefreshColumnsAsync()方法 - 为列设置
MinWidth属性 - 混合使用固定宽度和百分比宽度列
- 恢复状态后手动重新计算列宽
- 在
ColumnStateChanged事件触发网格刷新 - 调整网格整体宽度
求助问题
这是Syncfusion层级网格在恢复持久化列可见性和宽度时的已知问题吗?有没有推荐的事件或API可以在SetPersistDataAsync()执行完成后调用,确保层级展开/折叠列的宽度被正确计算,从而避免与第一列内容重叠?希望能得到相关指导或可行的解决方法。
内容的提问来源于stack exchange,提问作者Yogendra Jundare
相关产品推荐
相关产品推荐

