对于easyui的tree控件,一般都使用expandAll来实现树形菜单所有层级的展开,但如果需要指定展开某层级则需要先获取对应层级节点,然后使用expand展开单一节点。

有一个类别的树形菜单分为了3层,首先先设置tree仅显示第一层,然后直接使用getChildren方法获取第一层的节点集合,再循环让其节点expend即可展开第二层,但为了第三层不被展开,所以在给tree传json数据时,传递一个level进行判断。

实例代码如下:

$(‘#’ + treeId).tree({
    checkbox: false,
    url: “/Material/MaterialClass/GetTreeDataJson?parent=0&ismarket=1”,
    animate: true,
    lines: true,
    onClick: function (node) {
      CheckTreeNode(node);
    },
    onBeforeExpand: function (node, param) {
    },
    onLoadSuccess: function (node, data) {
      if (data) {
        $(data).each(function (index, d) {
        //只展开2级
          if (this.state == ‘closed’ && this.level < 2) {
            var children = $(‘#’ + treeId).tree(‘getChildren’);
            for (var i = 0; i < children.length; i++) {
              $(‘#’ + treeId).tree(‘expand’, children[i].target);
            }
            //全部打开 、合并操作
            //$(‘#’ + treeId).tree(‘expandAll’);
            //$(‘#’ + treeId).tree(“collapseAll”);
          }
         });
      }
    }
});