在文档中挖掘之后,我找到了一种方法来做到这一点。这并不简单,所以我想我会分享。 此页面有一个示例,说明如何使用富文本标签而不是仅显示文本来显示树节点。这涉及声明您自己的继承自 Tree._TreeNode 的类,允许您控制它的创建。可以使用相同的技术。
创建树时,我重写了 _createTreeNode 函数,如下所示:
_createTreeNode: function (args) {
if (args.item.type === "content") {
return new LayerManagerContentNode(args);
} else {
return new Tree._TreeNode(args);
}
}
在我的商店中,我添加了一个对象来表示我想要内联显示的内容并给它一种“内容”类型。
我创建了一个继承自 Tree._TreeNode 的类,如下所示:
定义([“dojo/_base/declare”、“dojo/_base/lang”、“dojo/dom”、“dojo/dom-construct”、“dojo/on”、“dijit/form/Button”、“dijit/ Tree" ], function (declare, lang, dom, domConstruct, on, Button, Tree) { return declare("my/ui/platforms/desktop/parts/LayerManagerContentNode", [Tree._TreeNode], { // 摘要:/ / ...
constructor: function () {
},
postCreate: function () {
var button = new Button({
label: "Test"
});
this.domNode.innerHTML = "<div></div>";
this.domNode.innterText = "";
button.placeAt(this.domNode, "first");
}
});
});
在 postCreate 中,我创建了一个按钮(这只是为了测试,我可能会创建一个内容窗格或其他内容以进一步填充)以代替通常的树节点显示。然后,我替换树节点 innerHTML 和 innerText 以隐藏通常显示的内容,瞧,它起作用了!
我敢说有更好的方法可以做到这一点,所以如果有人出现并拥有一个,请添加它。