tree.on('checkchange', function checkchange(node, checked) {
if (checked) {
checkParentNode(node.parentNode, checked);
}
checkChildNode(node, checked);
});
function checkChildNode(node, checked) {
if (node == undefined) {
return;
}
node.checked = checked;
node.ui.toggleCheck(checked);//这是页面上复选框是否被选中吧?为什么我的在这里报错,我用的是extjs5,是这个原因吗?还是其他原因?
node.eachChild(function (child) {
checkChildNode(child, checked);
});
}
function checkParentNode(node, checked) {
if (node == undefined) {
return;
}
node.checked = checked;
node.ui.toggleCheck(checked); //这里一样的错误
checkParentNode(node.parentNode);
}
checkchange事件参数node改过了,5+返回的是Ext.data.TreeModel,不是Ext.data.NodeInterface对象了
treemodel条用set更新数据源即可,有用记得采纳。。
function checkChildNode(node, checked) {
if (!node) return;
node.set('checked', checked);////////
node.eachChild(function (child) {
checkChildNode(child, checked);
});
}
function checkParentNode(node, checked) {
if (!node) return;
node.set('checked', checked);////
checkParentNode(node.parentNode);
}