jbella
jbella

Reputation: 73

Adding HTML in a dojo Tree label

I have a dojo dijit.Tree, and I want to be able to put some html in the labels. To do this, I created an function called getCustomLabel and assigned it to the tree getLabel attribute:

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

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

This returns a Tree with the html escaped so that it displays in the tree. Does anyone know of a way to get unescaped html in a tree widget?

Upvotes: 5

Views: 3167

Answers (5)

Ptiom
Ptiom

Reputation: 21

If you just want to print your label in bold, you can redefine getLabelStyle function of your dijit/Tree.

For instance:

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

Upvotes: 0

askdan
askdan

Reputation: 11

With dojo release 1.7.1 the following works:

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

Upvotes: 1

alisabzevari
alisabzevari

Reputation: 8146

you can use onClick event and redirect page to that addess:

<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>

Upvotes: 0

Erdem Memisyazici
Erdem Memisyazici

Reputation: 21

There is a very simple way actually :)

Right after the dojo.require statement add the following:

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

Upvotes: 2

jakeisonline
jakeisonline

Reputation: 1206

Wouldn't unescape() achieve this?

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

Upvotes: 0

Related Questions