2015-01-18 2 views
3

Я намерен использовать некоторые элементы управления кендо от telerik, и я начал играть с контролером Treelist. Я делаю это с Visual Studio 2013 VB или C#.kendo Treelist не сообщает никаких записей для отображения

Планируется создание веб-службы, которая отправляет некоторые (сериализованные) данные, и пользователю необходимо вручную нажать кнопку, связанную с запросом $ Ajax, который POSTS для данных. Эти данные должны быть переданы в список тем.

Но все, что я пытаюсь это держит меня говорить: No Records to Display

Вопросы:

1 Почему образец I при условии, что не работает. Я почти буквально копировал одну из демоверсий.

2 Вам нужен отдельный источник данных или вы можете также поместить данные прямо в treelist?

Заранее спасибо.

Rick (NL)

Пример:

`<script type="text/javascript"> 
$(document).ready(function() { 
     var dataSource = new kendo.data.TreeListDataSource({ 
     data: [ 
      { "Item": "Item0", "id": 0, "ParentId": null }, 
      { "Item": "Item1", "id": 1, "ParentId": 0 }, 
      { "Item": "Item2", "id": 2, "ParentId": 1 }, 
      { "Item": "Item3", "id": 3, "ParentId": 1 }, 
      { "Item": "Item4", "id": 4, "ParentId": null }, 
      { "Item": "Item5", "id": 5, "ParentId": null }, 
      { "Item": "Item6", "id": 6, "ParentId": 5 }, 
      { "Item": "Item7", "id": 7, "ParentId": 5 }, 
      { "Item": "Item8", "id": 8, "ParentId": 7 }, 
      { "Item": "Item9", "id": 9, "ParentId": 7 } 
     ], 
     schema: { 
      model: { 
       id: "id", 
       expanded: true 
      } 
     } 
    }); 

    $("#treelist").kendoTreeList({ 
     dataSource: dataSource, 
     height: 540, 
     columns: [ 
      { field: "Item" }, 
      { field: "id" }, 
      { field: "ParentId" } 
     ] 
    }); 
}); 

</script> 

ответ

2

Это вниз к простой опечаткой "ParentId" должен быть ParentID (обратите внимание на нижний регистр р).

см. Это dojo для рабочей версии.

http://dojo.telerik.com/uWaSO

Я упал фол этого раньше.

9

parentId также должен быть пустым, если это запись верхнего уровня. Это действительно сбило меня с толку.

+3

Это решило мою проблему и очень важно. Если запись верхнего уровня не имеет значения null для parentId, она покажет No Records To Display, даже если все остальное будет правильным. –

1

Кто-нибудь знает, можете ли вы указать столбец базы данных с другим именем как родительский? Например, моя таблица имеет node_id и parent_node_id.

5

@ user4659712 Да, вы можете определить схему. ParentID может быть что угодно, до тех пор, как вы говорите по схеме:

 vm.treeListDataSource = new kendo.data.TreeListDataSource({ 
     data: organizations, 
     schema: { 
      model: { 
       id: "Id", 
       fields: { 
        Id: { type: "number", nullable: false }, 
        parentId: { field: "OverliggendeId", nullable: true } 
       }, 
       expanded: true 
      } 
     }, 
     pageSize: 20 
    }); 
+1

по какой-либо причине сопоставление поля «parentId» с использованием схемы не работает, любая помощь будет оценена по достоинству. –

+1

работал для меня, когда я попробовал. Для работы с приведенными выше данными необходимо изменить только поле parentId. – Matthew

+0

отличный ответ! – nadav

1

Давайте не забывать поле «ParentID» по определению модели. Нам не нужно изменять свойства JSON таким образом (ParentId также нуждается в описании в полях):

var dataSource = new kendo.data.TreeListDataSource({ 
     data: [ 
      { Id: 1, Name: "test", ParentId: null }, 
      { Id: 2, Name: "test 2", ParentId: 1 } 
     ], 
     schema: { 
      model: { 
       id: "Id", 
       parentId: "ParentId", 
       fields: { 
        Name: { field: "Name", type: "string" }, 
        StoreCount: { field: "StoreCount", type: "number" }, 
        ParentId: { field: "ParentId", nullable: true } 
       }, 
       expanded: true 
      } 
     } 
    }); 
+1

Итак, ключевым моментом было определение поля для пользовательского родительского идентификатора (в данном случае «ParentId»), определенного в «полях» в схеме. Я пропустил определение этого. Итак, установка ParentId: {field: "ParentId", nullable: true} сделала трюк для меня. – dhunju

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