2013-01-16 88 views
2

我有一個顯示從json數據源獲得的一些數據的kendoui treeview。樹視圖正在處理的例外情況是,即使沒有子項目,它也會顯示子項目的曲折。即使沒有孩子,KendoUI Treeview也會顯示曲折

我相信這與我的json字符串有關,但在這一點上,我不相信我可以改變它。

這裏是JSON字符串:

[{"Title":"Shared Documents","spriteCssClass":"folder","LastModified":"1/15/2013 10:42:20 AM","Items":[{"Title":"Folder 1","spriteCssClass":"folder","LastModified":"1/15/2013 10:42:20 AM","Items":[{"Title":"Subfolder 1","spriteCssClass":"folder","LastModified":"1/15/2013 10:41:52 AM","Items":[]},{"Title":"Test Tax Document.docx","spriteCssClass":"docx","LastModified":"1/15/2013 10:42:20 AM","Items":[]}]}]}] 

我相信問題是,項目[]依然存在,即使沒有項目。

這裏是我的樹視圖代碼...

var treeDS = new kendo.data.HierarchicalDataSource({ 
      data: json, 
      schema: { 
       model: { 
        children: "Items" 
       } 
      } 
     }); 

var treeview = $("#CCA_DocLibTreeViewer_Tree").kendoTreeView({ 
      template: "#= item.Title # - #= item.LastModified # <a href='\\#'>View</a>", 
      dataSource: treeDS, 
      dataTextField: ["Title", "Title"] 
     }).data("kendoTreeView"); 

什麼我可以做這個有什麼想法?

回答

6

你是對的,問題是如果它有Items不管length它假定有孩子。

解決的辦法是要麼不產生那些空Items或定義treeDS爲:

var treeDS = new kendo.data.HierarchicalDataSource({ 
    data : json, 
    schema: { 
     model: { 
      children : "Items", 
      hasChildren: function (node) { 
       return (node.Items && node.Items.length > 0); 
      } 
     } 
    } 
}); 

你可以看到,我已經定義了一個hasChildren功能驗證node.Items存在,並且其length實際上比0更大。

您可能會看到它在JSFiddle中運行here

相關問題