Не выводятся данные в kendo tree list
Доброго времени суток, форумчане! Помогите пожалуйста, не получается выявить причину, по которой не выводятся данные в kendo tree list
var treelistDataSource = new kendo.data.TreeListDataSource({
transport: {
read: function (e) {
var searchTerm = $('#product-search').val();
Ajax2.executeAjaxRequest(QueryParameters.GetProductsParams(searchTerm), e);
},
update: function (e) {
},
destroy: function (e) {
},
create: function (e) {
},
// Post changed models in the `model` field, as serialized JSON
parameterMap: function (options, operation) {
if (operation !== "read" && options.models) {
return { models: kendo.stringify(options.models) };
}
}
},
// Enable batch updates
batch: true,
// Define the model schema
schema: {
model: {
id: "id",
fields: {
id: { type: "number", nullable: false },
parentId: { field: "parentId", nullable: true },
title: { type: "string", nullable: false }
}
}
}
});
TLGoods = $("#goodtreelist").kendoTreeList({
dataSource: treelistDataSource,
height: function () {
return $(window).height() - 120;
},
resizable: true,
groupable: true,
editable: {
move: true
},
drop: function (e) {
if (e.valid) {
ProductActions.DropCat(e.source.id, e.destination);
}
},
columns: [
{ field: "id", title: "#", width: 60 },
{ field: "parentId", title: "parentId", width: 60 },
{ field: "title", title: "Название", expandable: true },
{
field: "Action",
title: "Действия",
width: 80,
template: "<div class='b-task'>" + "#=ProductActions.TLGoodAdd(data)#" + "#=ProductActions.TLGoodEdit(data)#" + "#=ProductActions.TLGoodDelete(data)#" + "</div>",
},
],
toolbar: "<div class='b-task'>" + "#=ProductActions.TLGoodButtonCatAdd()#" + "#=ProductActions.TLGoodButtonAdd()#" + "</div>",
}).data("kendoTreeList");
|
В консоли браузера вижу
Uncaught RangeError: Maximum call stack size exceeded
at init._subtree (kendo.all.js:99660)
at init._subtree (kendo.all.js:99668)
at init._subtree (kendo.all.js:99668)
at init._subtree (kendo.all.js:99668)
at init._subtree (kendo.all.js:99668)
at init._subtree (kendo.all.js:99668)
at init._subtree (kendo.all.js:99668)
at init._subtree (kendo.all.js:99668)
at init._subtree (kendo.all.js:99668)
at init._subtree (kendo.all.js:99668)
|
Вот сам ajax метод:
Ajax2 = {
executeAjaxRequest: function (data, callback) {
console.log("Параметры запроса к API " + data.resource + ":");
console.log(data);
$.ajax({
type: "POST",
url: "/api/proxy",
dataType: "json",
contentType: "application/json",
data: JSON.stringify(data),
success: function (response) {
console.log("Ответ от API " + data.resource + ":");
console.log(response);
callback.success(response);
},
error: function (status) {
callback = [];
alert("Ошибка при получении данных при запросе к " + data.resource + ":" + status.responseText);
}
});
},
|
В консоли вижу, что response получает нужный мне массив (id = 1, parentId =0, title ="Акция 1" и т.д.), но callback не получает эти данные, он пустой объект
|
Хотя ранее этот метод успешно использовал для kendo grid datasource
|
У кого нибудь есть опыт работы с kendo treelist?
|
Возможно я неверно получаю данные с серверной части? Сейчас метод с сервера отдаёт всё сразу, может нужно только по id отдавать?
|
ParentId верхнего уровня обязательно должен быть null?
|
| Часовой пояс GMT +3, время: 08:13. |