Я достиг «динамических» заголовков столбцов (после многих сообщений об устранении неполадок с помощью Telerik), запросив данные перед инициализацией grid
через AJAX
вызов, а затем определяя имена столбцов на основе данных.
$.ajax({
type: "POST",
url: "/Controller/GetGridData",
// *Important* stringify the server-bound object
data: JSON.stringify(dataSourceId),
dataType: "json",
contentType: "application/json",
async: true,
success: function(response) {
// response contains data required for grid datasource
ConstructGrid(response);
}
});
function ConstructGrid(gridData) {
var dataSource = new kendo.data.DataSource({
... attributes
data: gridData,
... more attributes
});
var columnsArray = [];
if(gridData.attributeToCheck = "someValue") {
columnsArray.push({field: attributeEqualToSomeValue, title="attributeMatchingSomeValue"});
}
else {
columnsArray.push({field: attributeNotEqualToSomeValue, title="attributeNotMatchingSomeValue"});
}
.. continue to add more columns based on data then initialise grid
$("#grid").kendoGrid({
dataSource: dataSource,
filterable: {
extra: false
},
columns: columnsArray,
pageable: {
pageSizes: true,
pageSizes: [10, 20, 50, 100]
}
)};
}
Не точно 100% динамический, но он изменит имена столбцов на основе значений, полученных из вызова AJAX и AFAIK (после общения взад и вперед с Telerik), по-настоящему динамические столбцы не поддерживаются элементом управления сеткой.