【发布时间】:2016-01-18 11:11:48
【问题描述】:
我使用 Extjs 3.4。我正在使用复选框解决方案在 TreePanel 上工作。
我需要的是:当我检查父节点时,所有子节点也被检查。很简单,但是要靠extjs展开所有childNodes。
如果我这样做了
tree.expandAll();
tree.collapseAll();
我的检查策略会起作用,但我不想要展开效果。
我的 extjs 代码(checkchange event) 如下所示:
var checkchange = function(node, flag) {
if (node.hasChildNodes()) {
node.cascade(function(node) {
node.attributes.checked = flag;
node.ui.checkbox.checked = flag;
return true;
});
}
var pNode = node.parentNode;
for (; pNode != null; pNode = pNode.parentNode) {
if (flag || tree.getChecked("checked", pNode).length - 1 == 0) {
pNode.attributes.checked = flag;
pNode.ui.checkbox.checked = flag;
}
}
};
var tree = new Ext.tree.TreePanel({
listeners: {
'checkchange': checkchange
},
})
我该怎么办?感谢每一位提供建议。
[编辑]
我创建了A Demo In jsfiddle,可以轻松测试。
(由于jsfiddle使用的Extjs 3.4.0 cdn不起作用,我从https://cdnjs.com/libraries/extjs/3.4.1-1附加另一个cdn extjs资源)
【问题讨论】:
-
如果你分享一个小提琴会更容易帮助。
-
子部分的
expanded: true/false配置怎么样?