2016-02-13 4 views
0

Я пытаюсь отобразить мой json из контроллера mvc, который будет отображаться на отмеченном checkboxed kendo ui treeview. Код на ASP.NET MVC зрения и JSON послал к просмотру приведены нижеKendo UI Treeview не отображает дату правильно

MyDoc.cshtml code 
<script>     
      $("#treeview").kendoTreeView({ 
       checkboxes: { 
        checkChildren: true,      
       }, 
       dataSource: { 
        //type: "odata", 
        transport: { 
         read: { 
          url: '@Url.Content("~/Document/GetMyDocs")', 
          type: "post", 
          dataType: "json" 
         } 
        },       
        schema: { 
         model: { 
          id: "id", text:"Name", 
          children: "Files" 
         } 
        } 
       }, 
       dataTextField: [ "Name"], 
       check: onCheck    
      }); 

json object 
     [{"id":1,"Name":"Checking", 
     "Files":[{"Filename":"doc10","id":"1afd5a4f-086f-44d2-9287-8098384e379e"}, 
     {"Filename":"doc11","id":"89ea3366-14b8-4e91-8273-6e2a51fbe516"}]}, 
     {"id":2,"Name":"Saving", 
     "Files":[{"Filename":"doc20","id":"c7a88f5d-067e-4f20-93b6-da6eff69d532"}, 
     {"Filename":"doc21","id":"8a0a62ed-1b4a-4e5e-8d59-d57a975a7ab0"}]}] 

При просмотре страницы только верхнего уровня текста, «Проверка» и «Сохранение» шоу. Дата, указанная в разделе «Файлы», выводится как неопределенная.

Благодаря

ответ

0

Это выглядит так Кендо UI использует DataTextField: [ «Name»] как для родителя и дочернего узла. Поскольку json в дочерних данных не имеет имени поля, равного «Name», оно получилось неопределенным. Как только я изменил свойство «FileName» на «Name», он сработал. Документация Telerik так же жестока, как и другие сторонние элементы управления. Все их демонстрации более ориентированы на то, чтобы показать, насколько легко создавать эротический интерфейс, используя несколько жестко закодированных данных, чем показ того, как создать приложение в реальном мире!

+0

На самом деле я нашел способ сохранить дочерний узел таким же, как «FileName». Поскольку dataTextField: ["Name"] - это массив, я обновил его до dataTextField: ["Name", "FileName"]. Теперь он отлично работает без необходимости переименовывать дочернее свойство данных. Надеюсь, это полезно кому-то! – Massey

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