EXT JS自定义TreeNodeUI或XTemplate

时间:2010-10-01 15:07:31

标签: javascript treeview extjs

我正在寻找一种方法来获取TreePanel中节点的自定义模板..我想将它包装在div或类似的东西中。 abybody可以帮忙吗?

1 个答案:

答案 0 :(得分:4)

看起来有两种方法可以实现自定义TreeNodeUI。第一种是将您的实现添加到uiProviders列表中,并为您的节点分配一个名为'uiProvider'的属性,其值为您创建的密钥:

var loader = new Ext.tree.TreeLoader({
    uiProviders: {
        myKey: My.TreeNodeUI.Implementation
    }
});

这只会更改设置了uiProvider属性的树节点,而其他节点保持不变!

如果要更改所有TreeNodeUI,可以覆盖createNode方法以创建您喜欢的任何类型的节点(尽管这应该扩展Ext.tree.TreeNode)。如果您不想实现整个TreeNode类,则可以再次覆盖uiProviders属性。

var loader = new Ext.tree.TreeLoader({
    //override the CreateNode function
    createNode: function(attr) {
        attr.uiProvider = My.TreeNodeUI.Implementation

        return Ext.tree.TreeLoader.prototype.createNode.call(this, attr);
        //or possibly...
        //return My.CreateNode.Implementation
    } 
});