#kendo-ui #kendo-treelist
#kendo-ui #kendo-список деревьев
Вопрос:
Я использую компонент Kendo TreeList и пытаюсь выполнять удаленные данные по требованию. Вот как выглядит источник данных:
dsLocations = new kendo.data.TreeListDataSource({
transport: {
read: {
url: baseUrl "getsuggestedorganizationlocations?oid=" $("#Id").val(),
dataType: "json"
},
schema: {
model: {
id: "Id",
parentId: "ParentId",
fields: {
Id: { type: "number", nullable: false },
ParentId: { field: "ParentId", nullable: true }
}
}
}
}
});
Вот как настроен компонент TreeList:
$("#suggestedLocations").kendoTreeList({
dataSource: dsLocations,
columns: [
{ field: "Name", expandable: true, title: "Location", width: 250 },
{ field: "Selected", title: "Selected" }
]
});
И вот как выглядят данные, поступающие с сервера, для корневого:
[{"Id":5,"ParentId":null,"Selected":true,"hasChildren":true,"Name":"Kitchen"}]
Когда я разворачиваю узел для извлечения дочерних элементов, «идентификатор» в строке запроса, переданной на сервер, пуст.
Если я изменю свою модель, поступающую с сервера, на:
[{"id":5,"parentId":null,"Selected":true,"hasChildren":true,Name":"Kitchen"}]
Если идентификатор и родительский идентификатор указаны в нижнем регистре, это работает. Насколько я понимаю, предполагается, что конфигурация схемы отображает это. Чего и мне не хватает?
Я использую Kendo 2016.3.914
Ответ №1:
Нашел его. Я поместил настройку схемы в конфигурацию транспорта. Вот что это должно быть:
dsLocations = new kendo.data.TreeListDataSource({
transport: {
read: {
url: _organizeApp.baseUrl "getsuggestedorganizationlocations?oid=" $("#Id").val(),
dataType: "json"
}
},
schema: {
model: {
id: "Id",
parentId: "ParentId",
fields: {
Id: { field: "Id", type: "number", nullable: false },
ParentId: { field: "ParentId", nullable: true },
}
}
}
});