显示与dijit树内联的内容



我正在使用Dojo,并希望创建一个树状结构。但是,我希望能够在树中显示内容,一旦结束节点在一个特定的分支已经展开。例如

top
- a branch
-- last item in this branch
    [some content such as a div, span, image etc]
-- another item in this branch
    [some more content]

是否有人知道这可以实现使用dijit树,如果是这样,任何指针?

在文档中挖掘之后,我找到了一种方法来做到这一点。这并不简单,所以我想和大家分享一下。本页提供了一个示例,说明如何使用富文本标签而不仅仅是文本来显示树节点。这包括声明从Tree继承的自己的类。_TreeNode,允许控制它的创建。可以使用相同的技术。

创建树时,我重写_createTreeNode函数,如下所示:

    _createTreeNode: function (args) {
        if (args.item.type === "content") {
            return new LayerManagerContentNode(args);
        } else {
            return new Tree._TreeNode(args);
        }
    }

在我的商店中,我添加了一个对象来表示我想要内联显示的内容,并给它一个'content'类型。

我创建了一个继承自Tree的类。_TreeNode如下:

定义(["dojo/_base/声明","dojo/_base/朗","dojo/dom","dojo/dom-construct","dojo/","dijit/表单/按钮","dijit/树", 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来隐藏通常会显示的内容,瞧,它工作了!

我敢说有更好的方法来做到这一点,所以如果有人有一个,请添加它。

相关内容

  • 没有找到相关文章

最新更新