1

我使用 jqgrid 作为 treegrid 来显示层次结构。
数据是从数据库中提取的,我正在根据在服务器端完成的父子关系构建层次结构数据。
一页加载我将树加载到 x 级别(这是基于 dB 中的一些用户设置/首选项)。
所以用户看到前几个级别,然后他点击一个节点来按需加载更多级别。

问题:我不能使用“loaded:true”来扩展加载树,因为这不能让我按需加载其余的关卡。我尝试使用“expandRow”“expandNode”,这会在页面加载时扩展树,但这在崩溃期间给我带来了问题。我不能折叠树节点。

那么我自动扩展树并在页面加载时显示所有节点然后允许用户按需加载剩余节点的正确方法是什么。代码片段:

gridComplete: function () {
            setTimeout(function () {
                debugger;
                var ids = jQuery("#jqgTreeGrid").getDataIDs();
                for (var i = 0; i < ids.length; i++) {
                    rootNode = $("#jqgTreeGrid").jqGrid('getRowData')[i];
                    rootNode._id_ = rootNode.Id;
                    //rootNode.expanded = true;
                    $("#jqgTreeGrid").jqGrid('expandRow', rootNode);
                    $("#jqgTreeGrid").jqGrid('expandNode', rootNode);
                    //$("#" + rootNode._id_ + " div.treeclick")
                   // .removeClass("ui-icon ui-icon-triangle-1-e treeclick tree-plus")
                   // .addClass("ui-icon ui-icon-triangle-1-s treeclick tree-minus");


                }
            }, 10);


        },
}
4

1 回答 1

0

您可以使用expandedjqGrid 在您的数据中查找的字段。假设您使用的是Adjacency Model (尽管Nested Set Model的总体思路是相同的)jqGrid 正在扩展其阅读器以查找更多字段:

treeReader = {
   level_field: "level",
   parent_id_field: "parent",
   leaf_field: "isLeaf",
   expanded_field: "expanded"
}

您很可能已经在使用level,parentisLeaf字段。该expanded字段是可选的,但如果它存在并且其值为truejqGrid 将在加载时自动扩展节点(并在需要时请求数据)。

于 2012-12-05T13:07:37.483 回答