在Dojo树标签中添加HTML

4smxwvx5  于 2022-12-16  发布在  Dojo
关注(0)|答案(5)|浏览(149)

我有一个dojo dijit.tree,我希望能够在标签中放入一些html,为此,我创建了一个名为getCustomLabel的函数,并将其赋给树的getLabel属性:

tree = new dijit.Tree({
                model: aMOdel,
                showRoot: false,
                getLabel: getCustomLabel
            });

function getCustomLabel(item) {
    return '<b>'+item.name+'</b>'
}

这将返回一个带有转义的html的树,以便它显示在树中。有人知道在树小部件中获得未转义的html的方法吗?

gfttwv5a

gfttwv5a1#

其实有一个很简单的方法:)
在dojo.require语句后面添加以下内容:

dojo.require("dijit.Tree");
dijit._TreeNode.prototype.setLabelNode = function (label) {
        this.labelNode.innerHTML = label;
};
1bqhqjot

1bqhqjot2#

在dojo 1.7.1版中,以下内容可以正常工作:

dojo.require("dijit.Tree");
dijit._TreeNode.prototype._setLabelAttr = {node: "labelNode", type: "innerHTML"};
x8goxv8g

x8goxv8g3#

unescape()不就能做到吗?

function getCustomLabel(item) {  
    item.name = unescape(item.name);  
    return '<b>'+item.name+'</b>';  
}
bvjxkvbb

bvjxkvbb4#

您可以使用onClick事件并将页面重定向到该地址:

<div dojotype="dijit.Tree" model="model" id="tree" >
            <script type="dojo/method" event="onClick" args="item,treeNode">
                        window.location = "/Default.aspx?ItemId=" + dataStore.getIdentity(item);
            </script>
        </div>
5jdjgkvh

5jdjgkvh5#

如果你只想用粗体打印标签,你可以重新定义dijit/Tree的getLabelStyle函数。
例如:

getLabelStyle: function(item) {
    return {'font-weight': 'bold'};
}

相关问题