Я работаю с сеткой кендо с подсеткой деталей. У меня, к сожалению, проблемы с обновлением. У нас есть собственный редактор всплывающих окон для каждого элемента (не пользовательская версия кендо, а совершенно другое всплывающее окно, поскольку у нас были другие требования, которым мы должны были соответствовать).
Кнопка сохранения во всплывающем окне после завершения вызова ajax использует следующий обратный вызов для обновления сетки. Это не работает. Я протестировал обновление элемента в разделе сведений. Сетка полностью схлопывается, ошибок у меня нет, однако при повторном развертывании сетки рассматриваемый пункт не изменился. Однако полное закрытие сетки и повторное открытие сетки работает.
function refreshData() {
if (!settings.dataUrl)
return;
$.ajax({
type: "POST",
url: settings.dataUrl,
data: new Object(),
dataType: "json",
contentType: "application/json"
}).done(function (data, textStatus, jqXhr) {
// Perform mapping function on data
if (settings.mapperFunction) {
data = settings.mapperFunction(data, settings.pageSettings);
}
var dataForGrid = data;
if (settings.transformGridDataCallback)
dataForGrid = settings.transformGridDataCallback(JSON.parse(JSON.stringify(dataForGrid)));
settings.unfilteredTotal = dataForGrid.Data.Data.length;
outterGridDataSource.data = dataForGrid.Data.Data;
outterGridDataSource.read();
});
};
Вот пример кода для определения DetailInit для вложенных сеток.
detailInit: function (e) {
var innerColumns = [
...column definitions
];
var $detail = $("<div />").addClass("grid_detail class");
$detail.append($("<div />").addClass("grid inner_grid"));
//#region Problems Details
$detail.find(".inner_grid").kendoGrid({
scrollable: false,
editable: false,
dataSource: {
data: e.data.subItems,
transport: { //need this for Kendo Grid to handle updates properly
read: function (o) {
o.success(e.data.subItems);
},
create: function (o) {
},
update: function (o) {
},
destroy: function (o) {
o.success();
}
},
schema: {
model: {
id: "Id",
fields: {
display: { defaultValue: settings.pageSettings.stringvalue1 }
}
}
}
},
columns: innerColumns
});
Спасибо за любую помощь. Я буду работать над этим, чтобы попытаться закончить его.