2013-04-05 3 views
0

My Kendo UI TreeView не получает возвращенные объекты JSON, добавленные в treeview.Kendo UI KendoTreeView HierarchicalDataSource не показывает узлы

я могу видеть из метода контроллера, который вызывается, что Json уделяется DataSource выглядит следующим образом (но с большим количеством файлов и папок)

{"NodeID":-842352767, "Name":"/", "Folders":[{"NodeID":1804712307,"Name":"/$Recycle.Bin","Folders":null,"Files":null},{"NodeID":-582712839,"Name":"/Windows","Folders":null,"Files":null}], "Files":["/.rnd","/msdia80.dll"]}

Мой взгляд выглядит следующим образом:

@model ProjName.Models.BrowseNode 

<div id ="wrapper"> 
<h1>Browser</h1> 
<div id="treeview" style="float:left;margin: 40px;"> 
</div> 
</div> 
<script> 
function populateTreeView() { 
    var remoteDataSource = new kendo.data.HierarchicalDataSource({ 
     type: "json", 
     transport: { 
      read: "FileBrowser/GetHierarchy" 
     }, 
     schema: { 
      model: { 
       id: "NodeID", 
       text: "Name", 
       expanded: false, 
       children: "Folders", 
      }, 
     } 
    }); 

    $("#treeview").kendoTreeView({ 
     dataSource: remoteDataSource, 
     dataTextField: "Name" 
    }); 
} 

$(document).ready(function() { 
    populateTreeView(); 
}); 

С BrowseNode определяется как:

public class BrowseNode 
{ 
    public int NodeID { 
     get 
     { 
      if (null == Name) 
       return default(int); 
      return Name.GetHashCode(); 
     } 
    } 
    public string Name { get; set; } 
    public List<BrowseNode> Folders { get; set; } 
    public List<string> Files { get; set; } 
} 

Все, что явно неправильно или какие-либо советы по отладке такого рода вещей?

ответ

1

Оказалось, что мой JSON не был тем, чего хотел DataSource. Он должен был массив возвращается на самом высоком уровне, так что JSON окружен [] скобки следующим образом:

[{"NodeID":-842352767, "Name":"/", "Folders":[{"NodeID":1804712307,"Name":"/$Recycle.Bin","Folders":null,"Files":null},{"NodeID":-582712839,"Name":"/Windows","Folders":null,"Files":null}], "Files":["/.rnd","/msdia80.dll"]}]

+0

Как изменить JSON, не могли бы вы уточнить немного больше? –

+0

мой ребенок (ваши папки) отображается как неопределенный! –

+0

звучит как другая проблема. Все, что мне нужно было изменить, было от объекта json до массива json, который он ожидал. i.e от '{'parent': 1}' to '[{'parent': 1}]' – James

Смежные вопросы