我试图了解KendoUI Grid的工作原理。我已成功从服务器返回分页数据,服务器端分页也正常工作。
但是我遇到动态设置列详细信息的问题,即标题既不显示也不显示模板,列标题显示绑定字段的名称。我认为问题与列初始化时有关,因为我在从服务回调后了解列的详细信息。
以下是我绑定网格的方法:
$("#kGrid").kendoGrid({
dataSource: {
serverPaging: true,
schema: {
data: "data",
total: "total"
},
pageSize: 10,
transport: {
read: function(options) {
var searchParam = new Model.SearchParamsCM('QuoteDomainTasks', 'QuoteList', false, options.data.page, options.data.pageSize);
seHttpService.GetWithParms('/spa/api/genericrequest', searchParam)
.then(function (result) {
var data = oThis.createJSONFromResults(result.data, oThis);
options.success(data);
},
function(result) {
options.error(result);
});
}
}
},
columns: oThis._gridColumns,
scrollable: false,
pageable: { "refresh": true, "pageSizes": true },
sortable: true,
filterable: true
});
其中oThis._gridColumns填充在oThis.createJSONFromResults中。此代码位于TypeScript中。
答案 0 :(得分:1)
数据源仅用于读取网格的内容,而不是其配置(在设置网格时只需要创建一次)。您需要将这两个问题分开,以便在致电oThis._gridColumns
时$("#kGrid").kendoGrid()
具有列定义。
Kendo Grid并不真正支持动态更改列定义,因此如果您需要,您可以选择:
(请注意,这很大程度上未经测试,可能会破坏新的Kendo UI版本)
grid.options.columns = changedColumnDefinition;
grid.table.find(">thead").empty();
grid._columns(grid.options.columns);
grid._thead();