如果你指的是javascript slickgrid,那么你需要专门看一下这个slickgrid的例子
https://github.com/mleibman/SlickGrid/blob/gh-pages/examples/example5-collapsing.html
这是一个实现而不是一个特性,所以任何版本都应该没问题。所以是的,如果可能的话,最好选择最新的。
它只是使用缩进实现树视图。它与其他具有树结构特定视图的库不同。
你应该在后端做的是,向前端发送一个包含项目列表的数组。数据项应该有 2 个属性 parent 和 level。
如果项目是某个父项的子项,则父项对于根和级别 0 将为空。子级为 1,父级为 0(数组的索引)。 (在 slickgrid 中实现)
请注意,父值可以是任何基于您的数据的值。例如类别的层次结构。
var item1 = {id: "id_1", category:"cat1" parent: null, }
var item2 = {id: "id_2", parent: "cat1"};
因此 level 属性显示了当前项目在层次结构中的深度。
示例中的光滑网格使用级别值来放置缩进或空格。
您可以使用相同的逻辑,也可以根据级别应用特定的 css3 类并根据您的需要进行自定义。
.class[level=0] {}
这样光滑的网格很灵活。您只需要特定格式的数据。
一件重要的事情是项目数组应该已经按字段和级别排序才能正常工作。
Oracle 等一些数据库已经为您提供了先验连接等选项来获取这种格式的数据。有一个保留关键字级别,可以添加为列名。
这也是假设您的表已经设计为代表层次结构。
SELECT category_id, cat_name, cat_parent_id, LEVEL
FROM categories
CONNECT BY PRIOR category_id = cat_parent_id;
您还可以从指定的根目录获取数据
START WITH category_id = 5