服务回调中的KendoUI网格服务器动态列绑定
KendoUI Grid Server Dynamic Column binding in service callback
我正在努力理解KendoUI网格的工作原理。我已经成功地从服务器返回了分页数据,服务器端分页也在工作。
但我在动态设置列详细信息时遇到了问题,即既不显示标题也不显示模板,列标题显示绑定字段的名称。我认为这个问题与列何时初始化有关,因为我在从服务回调后了解了列的详细信息。
以下是我如何绑定网格:
$("#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
});
这个在哪里_gridColumns填充在oThis.createJSONFromResults中。此代码位于TypeScript中。
数据源仅用于读取网格的内容,而不是其配置(在设置网格时只需要创建一次)。您需要将这两个关注点分开,以便在调用$("#kGrid").kendoGrid()
时oThis._gridColumns
具有列定义。
Kendo Grid并不真正支持动态更改列定义,因此如果您需要,您可以选择:
- 只要列定义必须更改,就重新创建整个轴网
- 手动更改内容(例如,如果只有标题更改,则可以通过jQuery选择和编辑元素来完成更改)
- 试着弄乱内部,例如下面这样的东西
(注意,这在很大程度上是未经测试的,可能会与新的剑道UI版本决裂)
grid.options.columns = changedColumnDefinition;
grid.table.find(">thead").empty();
grid._columns(grid.options.columns);
grid._thead();
相关文章:
- 如何在Angular.js中循环动态添加Fields并获取数据并将其发送到服务器
- post()向服务器动态生成的数据返回空响应
- 从要使用Protractor测试的服务器异步加载的动态数据列表的列表
- 性能:动态脚本注入与服务器渲染脚本
- 在 JSP 之间共享动态客户端和服务器端内容
- 剑道数据源,将动态数据发送到服务器
- 动态图像加载是否会减少服务器过载
- 如何使用服务器的JSON响应动态填充dust模板
- 从服务器和/或客户端加载动态元素的典型技术是什么
- 服务器间错误:php访问动态创建的元素数组
- 我可以将初始动态数据从基于RESTful api的服务器端传递到基于角度的前端页面吗
- 如何在从服务器获取数据的动态表的每一行中添加下拉列表
- 服务回调中的KendoUI网格服务器动态列绑定
- 如何将图像从 html 页面动态发送到服务器
- 从服务器动态生成 JavaScript 代码 - MVC 4.
- 针对无访问权限的跨域服务器动态调整iframe的大小
- Angular如何从服务器动态加载后编译整个jTable
- Tableau服务器9.1动态logo
- 当每个元素都是使用angularJS从服务器动态创建时,我如何将表中的每个新元素添加到表的顶部
- 我可以解析JSON远程从另一个服务器动态生成的php页面