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 }); } } }

Другие вопросы по тегам