Dynamic Kendo UI Grid
Я столкнулся с проблемой с динамически создаваемой сеткой пользовательского интерфейса кендо. Когда я указываю массив столбцов с title
а также field
свойства и визуализации сетки, столбцы сетки не показывают указанный title
вместо этого они показывают field
название. Я не хочу, чтобы имя поля отображалось как есть, потому что само имя поля не будет иметь смысла в качестве заголовка столбца.
Примечание: это делается внутри углового контроллера.
Это мое определение сетки
<div kendo-grid="ctrl.commonGrid" options="ctrl.commonGridOptions"></div>
Вот код, который я использую для генерации столбцов.
var columns = [];
angular.forEach(ctrl.ColumnConfig, function (col) {
var newCol ={
title: col.displayName,
field: col.mappingProperty.toCamelCase(),
}
columns.push(newCol);
});
После этого я назначаю это коллекции столбцов сетки
ctrl.commonGridOptions = {
columns: columns,
};
а затем просто используйте метод данных grid dataSource для заполнения данных.
ctrl.commonGrid.dataSource.data(ctrl.TableData);
Со вчерашнего дня я чешу голову, но не могу понять, что происходит не так.
Может кто-нибудь мне помочь.
Спасибо
1 ответ
Хорошо, я исправил это. Ниже приведен код, который работает как ожидалось. FirstRow - это не что иное, как строка из списка объектов, которые я получаю с сервера, а columnConfig - это конфигурация столбцов, которые я хочу отобразить.
for (var property in firstRow) {
if (firstRow.hasOwnProperty(property)) {
model.fields[property] = { type: 'string' };
var col = $.grep(ctrl.columnConfig, function (e) { return e.mappingProperty === property });
if (col.length) {
columns.push({
title: col[0].displayName,
field: col[0].mappingProperty
});
}
}
}