【问题标题】:Kendo Grid UI: Collapse single Tree node instead of complete treeKendo Grid UI:折叠单个树节点而不是完整树
【发布时间】:2017-09-11 14:18:27
【问题描述】:

我在 Kendo Grid 中有一个树视图数据(3 个级别),我正在使用 Kendo Grid 功能展开/折叠树视图。我的要求是逐级展开/折叠树数据,而不是一次全部展开。

Expand 使用以下代码可以正常工作

$(".treeview").data("kendoTreeView").expand(".k-item");

问题在于崩溃。通过单击折叠按钮,树会完全折叠,但我希望它只折叠一次。

我试过了

$(".treeview").data("kendoTreeView").collapse(".k-item"); Collapses to first level
$(".treeview").data("kendoTreeView").collapse(".k-group"); same: Collapses to first level

我可以使用 treeview.collapse(treeview.findByText("foo")); 类似的东西,但由于数据是动态的,所以我不知道确切的文本。

有什么办法可以只折叠一个节点而不是整棵树。

【问题讨论】:

    标签: jquery kendo-ui treeview kendo-grid


    【解决方案1】:

    如果节点是动态的,首先通过某个函数找到它的值

    function collapse() {
    
        var text= calculateNode(test);
    
        var treeview = $(".treeview").data("kendoTreeView");
        for (var i = 0; i < nTextValue.length; i++) {
            treeview.collapse(treeview.findByText(text[i]));
        }
    }
    

    然后折叠该级别的所有节点

    【讨论】:

      【解决方案2】:

      这是通过手风琴而不是 kendoGrid 工作的,但我想它可以以相同的方式工作。

      var panelCol = $(".treeview").data("kendoTreeView")
      panelCol.on('.collapse', function () {
          panelCol.not(document.getElementById($(this).attr('id'))).removeClass('in')
          .addClass('collapse').closest('.panel').find('a').addClass('collapsed');
      });
      

      【讨论】:

      • 感谢您的建议,但我通过计算名称并使用 (treeview.findByText("foo")); 修复了它
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-08-15
      • 2014-06-01
      • 1970-01-01
      • 1970-01-01
      • 2013-07-01
      • 2011-05-29
      相关资源
      最近更新 更多