EXT JS 自定义 TreeNodeUI 或 XTemplate

kar*_*jko 3 javascript treeview extjs

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

NT3*_*3RP 5

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

var loader = new Ext.tree.TreeLoader({
    uiProviders: {
        myKey: My.TreeNodeUI.Implementation
    }
});
Run Code Online (Sandbox Code Playgroud)

这只会更改设置了 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
    } 
});
Run Code Online (Sandbox Code Playgroud)