Ext.net TreePanel有一個方法node
drptreepanel.setChecked({ ids: idsarray, silent: true });
若是TreePanel裏有1,3兩個節點,ids內有一個5的節點,那麼就會出問題,必須重新刷新頁面。
將以上方法修改成this
function SetChecked(treepanel, arrayids) { var rootnode = treepanel.getRootNode(); if (arrayids.contain(rootnode.id)) rootnode.getUI().checkbox.checked = true; else rootnode.getUI().checkbox.checked = false; findchildnode1(rootnode, arrayids); } function findchildnode1(node, arrayids) { var childnodes = node.childNodes; for (var i = 0; i < childnodes.length; i++) { //從節點中取出子節點依次遍歷 var rootnode = childnodes[i]; if (rootnode.childNodes.length > 0) { //判斷子節點下是否存在子節點 findchildnode1(rootnode, arrayids); //若是存在子節點 遞歸 } console.log(rootnode.id); if (arrayids.contain(rootnode.id)) rootnode.getUI().checkbox.checked = true; else rootnode.getUI().checkbox.checked = false; } } Array.prototype.contain = function (val) { for (var i = 0; i < this.length; i++) { if (this[i] == val) { return true; } } return false; };
相應代碼修改成spa
SetChecked(department,ids);