2009-09-29 84 views
4

我有一個dojo dijit.Tree,我希望能夠在標籤中添加一些html。要做到這一點,我創建了一個名爲getCustomLabel並將其分配給樹getLabel屬性的功能:在dojo Tree標籤中添加HTML

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

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

此方法返回的HTML樹逃脫,以便它顯示在樹中。有沒有人知道一種方法來獲取未轉義的html在樹部件?

回答

0

會不會unescape()達到這個目標?

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

轉義是在「getCustomLabel()」返回值之後發生的。 – jbella 2009-09-30 23:57:17

+0

很高興看到實際頁面或更廣泛的代碼 – jakeisonline 2009-10-01 10:38:15

2

有其實是一個很簡單的方法:)

右鍵考慮dojo.require語句後添加以下內容:

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

可以使用onClick事件和重定向頁面到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> 
1

隨着dojo發佈1.7.1以下作品:

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