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);
}