2011-08-17 46 views
0

我在MVC網站上使用JsTree。我使用json_data插件來填充樹。我的控制器操作使用我用來表示節點的類返回一個JsonResult。我一直在閱讀documentation關於如何爲特定節點指定自定義圖標,但我似乎無法做到。它似乎暗示數據應該是一個包含標題和圖標字符串的對象,但是當我嘗試它時,這會阻止樹加載。我目前使用的班級結構如下。JsTree自定義圖標與Json_data插件

public class NodeModel 
{ 
    public string data; 
    public NodeAttribute attr; 
    public string state = "closed"; 
    public string icon = "default/file.png"; 
} 

public class ParentNodeModel : NodeModel 
{ 
    public List<NodeModel> children; 
} 

public class NodeAttribute 
{ 
    public string id; 
    public string type; 
} 

有沒有人知道什麼格式的json數據應該看起來像給每個節點一個單獨的圖標?如果可能,我想避免使用類型插件。

解決

更改我的階級結構,使數據字符串轉換成一個新的對象實際上是正確的格式。但是隨着新結構的出現,我的代碼的另一部分崩潰了(現在已經修復)。所以這些類現在看起來像這樣

public class NodeModel 
{ 
    public NodeData data; 
    public NodeAttribute attr; 
    public string state = "closed"; 
} 

public class NodeData 
{ 
    public string title; 
    public string icon = "path/file.png"; 
} 

回答

0

似乎你的對象定義正確。從jsTree文檔:

如果icon包含斜槓/它被視爲一個文件,用於 背景。否則 - 它被添加作爲一個階級的「插件」節點

我認爲「默認/ file.png」已添加的CSS類的「插件」節點,所以也許斜槓「/」應該是第一個符號,嘗試將圖標值設置爲「/default/file.png」。

你也可以檢查我們如何在我們的project使用jsTree:

+0

感謝您的建議。我使用螢火蟲檢查了html,並且css-class似乎沒有改變(我得到了 class =「jstree-icon」>  仍然)。我一直在玩網址,並試圖在開始時添加一個'/'。文檔說它應該包含一個'/',它將被用作一個url。我有一種感覺,圖標字符串不應該在那裏我擁有它。我發現[這個例子](http://mohyuddin.blogspot.com/2009/05/binding-jstree-programmatically-with.html),再次表明圖標應該在數據對象中,但是當我嘗試它時樹永遠加載。 – Joe

+0

您是否看到此線程:http://groups.google.com/group/jstree/browse_thread/thread/d9d9934a71d6df48?fwc=2。似乎同樣的問題。 –

+0

我讀了這篇文章,並開始玩演示頁面。我將一些原始的json數據添加到演示樹中,並設法獲得一個自定義圖標。正確的格式是將數據更改爲包含標題和圖標的對象。所以有趣的事情一定會發生在我自己的項目中,但這是一個很好的開始,我想我現在有一些工作要做:) – Joe