2016-05-13 8 views
1

Ich versuche, eine Ordner-Struktur über Kendo TreeView anzuzeigen ... Wenn ich die Elemente in der Ansicht einfügen, funktioniert es gut. Wenn ich versuche, es mit Remote-Datenbindung zu tun, zeigt es nur die übergeordneten Knoten und keine Optionen zum Erweitern ist da ... obwohl der Ordner andere Ordner/Dateien enthält. Hier ist der Code:Kendo TreeView mit Remote-Datenbindung zeigt keine Kinder

Html.Kendo().TreeView() 
      .Name("DownloadTreeView") 
      .DataTextField("Name") 
      .DataSource(dataSource => dataSource 
       .Read(read => read.Action("GetFiles", "DownloadSettings")) 
      ) 
      .ExpandAll(true) 
      .Render(); 


public JsonResult GetFiles(string path) 
    { 
     const string StartDirectory = @"L:\dsms\assets"; 
     path = path ?? StartDirectory; 
     var files = Directory.GetFiles(path).Select(file => 
      new DownloadTreeViewVM 
      { 
       Id = file, 
       HasChildren = false, 
       Name = Path.GetFileName(file) 
      }); 

     var directories = Directory.GetDirectories(path).Select(dir => 
      new DownloadTreeViewVM 
      { 
       Id = dir, 
       HasChildren = Directory.GetFiles(dir).Any() || Directory.GetDirectories(dir).Any(), 
       Name = Path.GetFileName(dir) 
      }); 

     var result = files.ToList(); 
     result.AddRange(directories); 
     result = result.OrderBy(x => !x.HasChildren).ToList(); 

     return Json(result, JsonRequestBehavior.AllowGet); 
    } 

Irgendeine Idee?

Vielen Dank im Voraus.

Antwort

0

sollten Sie Ihre Parameter als Nullable-String übergeben und benennen Sie es, dies versuchen id:

public JsonResult GetFiles(string? id) 
{ 
    //then do your stuff 
} 

und entfernen ExpandAll (true) aus dem treeview

+0

Dank für die Antwort danken. Eigentlich habe ich das gemacht: hasChildren statt "HasChildren" ... jetzt klappt es ... –