当单击父级时,dojo / dijit树复选框选择子级

时间:2016-02-01 22:09:32

标签: checkbox tree dojo dijit.tree

我在网上找到了工作示例,我可以看到树的每个节点旁边的复选框。上面提到的小提琴链接如下所示:

Dojo tree with checkbox not displaying

现在我的要求是当检查父节点时,所有子节点也应该被检查,它应该在DOJO 1.3版本中工作     可以帮助别人帮助修复小提琴代码

1 个答案:

答案 0 :(得分:1)

在复选框监听器中,您可以放置​​代码来查找子项并检查它们: 在添加其他复选标记之前,树必须进行扩展,因为在第一次扩展父节点之前,不会创建子节点。

    dojo.connect(cb, "onChange", function() {
    var treeNode = dijit.getEnclosingWidget(this.domNode.parentNode);
    //treeNode.expand();
    treeNode.tree._expandNode(treeNode);
    dojo.publish("/checkbox/clicked", [{
      "checkbox": this,
      "item": treeNode
    }]);

    var parentcb = this;
    console.log(parentcb.checked)
      treeNode.getChildren().forEach(function(item) {
      var checkbox =  dijit.getEnclosingWidget(item.labelNode.children[0]);
     checkbox.set('checked', parentcb.checked)
  });
  });

小提琴:http://jsfiddle.net/mcfskLop/8/