【问题标题】:Dojo datagrid and treegrid help - datagrid has a reformating flash?Dojo datagrid 和 treegrid 帮助 - datagrid 有重新格式化的闪存?
【发布时间】:2011-04-10 01:09:54
【问题描述】:

我有一些时间试图让 Dojo 网格 (1.5) 玩得更好。具体来说,我花了大约两周的时间来尝试实现一个网格,该网格允许我们的结果集数据折叠成行,行可以在其中展开。数据以 JSON 格式的完整集合形式出现,使用 ItemFileReadStore 作为存储。任何后续的排序或分页都是通过从应用程序获取新的 json 并在 url 中传入新的查询参数来处理的。

嵌套数据只有两层深 - 一个始终显示的顶层和一个结构与顶层相同的子数据数组。每个节点都有一个唯一 ID 和一个集群 ID - 在父节点上,唯一 ID 和集群 ID 将匹配。

我最初对 TreeGrid 感到非常兴奋 - 但我看不出如何格式化它以完成我需要的操作 - 即消除我的“摘要行”和一个充满空单元格 (???) 的额外行除非我将查询集中在一个集群上,否则无法弄清楚如何删除。我研究了测试示例,自己构建了许多测试页面,试图理解 ForestModel,据我所知这是不必要的......我发现的文档很少,我在网上找到的资源暗示 TreeGrid 可能不可靠......

所以我决定尝试在 dataGrid 中实现可展开/可折叠的行。

我扁平化了 JSON 数据并添加了另一个属性来指示它是顶级节点('alwaysShow' = true)。我以编程方式构建了我的网格并应用了 grid.filter() 来仅提取那些顶级节点。我通过扩展 ItemFileReadStore _FetchItems“过滤器”方法来修改该过滤器以允许 OR 查询而不是 AND,并且还修改它以允许键指向数组 - 当顶级节点(单元格中的小 +/- 图标)单击后,父节点的集群 ID 将添加到 grid.filter.allowed[] 并更新过滤器,从而允许显示具有该 cluster_id 值的节点。

这在我的五条记录的小测试集上运行良好(虽然我说有点迟缓......) - 但现在我从应用程序中拉回约 900 行,并在扩展大型集群(约 80 行)时我在过滤器更新上看到很长的蓝色和白色闪烁。我一天中的大部分时间都在尝试通过 firebug 来查找它发生的位置,但是 dojo 逻辑是如此分散。似乎在调用 _Grid.js defaultUpdate 之前发生。

太糟糕了,我正在考虑再次尝试使用 TreeGrid。我也在考虑用手做这件事……我因为花了这么多时间试图让 Dojo 开始工作而自责。如果有人有任何建议,我也会考虑使用商业“JSON->table with collapsible row”库...

有什么建议或见解吗?熟悉闪烁问题或如何使 TreeGrid 适应我的需求?我知道这有点啰嗦...非常感谢您的帮助。
-罗比

编辑:我最终放弃了尝试让 Dojo 做我需要的事情,并在不到一天的时间内自己编写了代码。三个星期不是最好的使用...

【问题讨论】:

    标签: datagrid dojo dojox.grid treegrid


    【解决方案1】:

    编辑: 我刚刚找到了一个适合我的解决方案,我添加了以下 CSS: .dojoxGridSummaryRow { 可见性:折叠 } 基本上,可能仍会创建摘要,但它们在表格布局中不可见也不考虑在内。这对我有好处。希望这能解决您的问题。

    这无济于事,只是为了让您知道:

    "- 但我不知道如何格式化它以执行我需要的操作-即消除'摘要行'"

    与我正在尝试实现的完全相同的事情并没有找到解决方案,即使这看起来是一个非常简单的功能......如果我找到了解决方案,我会告诉你......

    【讨论】:

    • 您好!我应该考虑尝试调整 CSS。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2023-03-30
    • 1970-01-01
    • 2012-08-07
    • 2010-10-06
    • 1970-01-01
    • 2010-12-11
    • 2011-02-08
    相关资源
    最近更新 更多