You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.09 06:12:33