Search code examples
extjsextjs3

How to render TreeNode after changing node.attributes?


I am updating the attributes of Ext.tree.AsyncTreeNode. After updating, i want to render the updated values on UI. This node is already rendered, how can I rerender the same treeNode with new updated attributes value?

I am using uiProvider for TreeNode i.e. attr.uiProvider = Ext.ux.tree.TreeGridNodeUI


Solution

  • function refreshNodeColumns(n)
    {
        var t = n.getOwnerTree();
        var a = n.attributes;
        var cols = t.columns;
        var el = n.ui.getEl().firstChild; // <div class="x-tree-el">
        var cells = el.childNodes;
        
        //<div class="x-tree-col"><div class="x-tree-col-text">
        
        for(var i = 1, len = cols.length; i < len; i++)
        {
            var d = cols[i].dataIndex;
            var v = (a[d]!=null)? a[d] : '';
            if (cols[i].renderer) v = cols[i].renderer(v);
            cells[i].firstChild.innerHTML = v;        
        }
    }