EXT TREE

总结过去与现在EXT TREE 的一些功能:

用Ext.override重写控件属性:

一些通用的控件属性,可以用Ext.override重写并放在公共文件中,这样所有引用此公共文件的页面的控件,将自动继承这些属性.

例如:需要让所有Grid的行号在翻页后连续递增并且其宽度自动设为30,则可在公共文件中将Ext.grid.RowNumberer重写如下:

Ext.override(Ext.grid.RowNumberer, {
    width: 30,
    renderer: function (value, cellmeta, record, rowIndex, columnIndex, store) {
        return store.lastOptions.params.start + rowIndex + 1;
    }
});

Ext.override(Ext.tree.TreeNode, {
                deepExpand : function(anim, callback, scope){   
                    // 先展开本节点   
                    this.expand(false, anim, function(){   
                        // 然后展开子节点   
                        var cs = this.childNodes,    
                            expanded = 0,   
                            len = cs.length,   

                            
                            taskDone = function(){   
                                // 每展开成功一个子节点,计数+1   
                                expanded++;   
                                // 如果所有子节点都展开,调用最终回调   
                                if(expanded >= len){   
                                    this.runCallback(callback, scope || this, [this]);   
                                }   
                            };

                          if(len<=0){   
                              taskDone.call(this);// <--- 这里? 应该修改为 taskDone.call(this);   
                              return;   
                          }                      
                        // 递归展开   
                        for(var i = 0, len = cs.length; i < len; i++) {   
                            cs[i].deepExpand(anim, taskDone, this);   
                        }   
                    }, this);   
                }   
            });          


你可能感兴趣的:(EXT TREE)