EXT.net 1.x TreePanel的一個坑

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);
相關文章
相關標籤/搜索