首页 > 解决方案 > Slickgrid 对层次结构进行排序

问题描述

我创建了一个只有 2 个级别的 slickgrid 层次结构。层次结构的实现遵循示例 5 ( https://6pac.github.io/SlickGrid/examples/example5-collapsing.html )。我正在使用以下叉子 - http://6pac.github.io/SlickGrid。我只想按第一级排序,并让孩子们按相同的顺序排列。我尝试将可排序属性添加到列中,但这并没有做任何事情。关于如何做到这一点的任何指示,我不知道从哪里开始。一如既往地提前感谢。

标签: sortinghierarchyslickgrid

解决方案


关于您引用的那个例子,有几件事需要注意。

  1. 在该示例中对数据进行排序是您自己的事,简而言之,这意味着您必须添加自己的排序函数,并且最终必须创建很多递归函数(因为分层数据只是可通过递归排序)
  2. 最好预先构建来完成这种工作,因为我也需要它,所以我开始了一项功能更改,最终将合并到 6pac/SlickGrid 分支中,我在这个问题帖子中简要讨论了它你可以看到一个动画 gif。但从来没有时间完成它,我也在等待某人的帮助来完成它。除非我们合并它有
    • 我开始的功能是我的叉子中的这个示例,它最终将被合并。您可以使用该代码并且它应该可以工作,但您还需要一个新的 SlickGrid 插件,我们创建了plugins/slick.treeData.js并带有一些用于递归内容的帮助程序(请记住,使用层次结构对树数据进行排序需要您使用递归,有趣的时间是......如果你喜欢拉你的头发)
  3. 或者最后的选择是使用我的另一个库Slickgrid-Universal,它是 SlickGrid 之上的一个包装器(因此它使用 6pac/SlickGrid 分支并且是一个依赖项)。我创建的这个新库与框架无关(它可以在任何框架中使用),并且示例是用普通的 TypeScript(或您希望的 JavaScript)编写的,有 2 个示例用于分层数据集Tree Data 与 parentId 引用Tree Data 与分层数据集
    • 我最终想在我的库中添加的是支持 SlickGrid 内置聚合器,但从来没有时间完成它(这实际上与我在上面写的阻塞选项 2 相同)。
  4. 如果您使用其他框架,我还创建了 2 个其他库Angular-SlickgridAurelia-Slickgrid,它们具有与选项 3 相同的功能集。

所以从列表中选择你的选择,这不是一个容易使用的选项,但这些是当前选项,显然选项 1 是最难的,因为选项 2-3 基本上意味着我已经完成了选项 1 的工作。

在这个动画 gif 中可以看到选项 2

6iD2ly0AKA


推荐阅读