将计算数据存储在剑道网格的列中
Store calculated data in Column of Kendo Grid
我要做的是将一些数据存储在特定列中,该列是使用另一列中的数据计算的。
我目前有一个函数,该函数以 JSON
为单位返回给定Id
的可用许可证数量
function getAvailableLicenses(id) {
var url = "/Host/Organization/AvailableLicenses/" + id;
$.get(url, function (data) {
return data.AvailableLicenses;
});
}
如何将此号码存储在名为"可用许可证"的列中?
这是我目前的网格:
$("#OrganizationGrid").kendoGrid({
dataSource: viewModel.get("orgDataSource"),
filterable: {
extra: false
},
sortable: true,
pageable: true,
columns: [
{ field: "Id", hidden: true },
{ field: "Name", template: "<a href='/Host/Organization/Detail/#:Id#'>#:Name#</a>" },
{ field: "LicenseNumber", title: "Number of Licenses" },
{ field: null, title: "Available Licenses", template: "#= getAvailableLicenses(Id) #" },
{ field: "LicenseExpiration", title: "License Expiration", format: "{0:MM/dd/yyyy}" },
{ field: "State" },
{ field: "Active" }
],
editable: false
});
如您所见,我尝试使用一个模板创建一个空列,该模板为给定Id
调用函数。通过使用 Fiddler,我可以看到确实为所有行调用了该函数,但AvailableLicenses
列只显示每一行的Undefined
。
我在这里缺少什么来让它工作吗?
我认为更好的方法是在数据源parse()
函数上
首先:您的列配置必须像这样更改:
{ field: "AvalableLicenses", title: "Available Licenses" },
你可以使用你的模板.
其次,在您的dataSource()
中,您可以添加:
schema: {
parse: function(response) {
for (var i = 0; i < response.length; i++) {
response[i].AvalableLicenses= null;
response[i].AvalableLicenses = getAvailableLicenses(response[i].Id)
}
return response;
}
}
编辑:
如果您更喜欢使用您的方式,我认为您的配置没有任何问题,可能是您的$.get
返回未定义,或者您不希望返回的内容。为了方便起见,我做了一个例子。
http://jsfiddle.net/jwocf897/
希望这个帮助
相关文章:
- 剑道网格jQuery动画()问题
- 通过简单的计算将Excel spreadhhet转换为在线网格
- 用于计算网格视图中的值的 JavaScript
- 如何使用 Angular js 计算网格视图项模板文本框值的两个文本框值
- 我们如何计算使用 javascript 在网格视图中选中的复选框数量 asp.net
- 将计算数据存储在剑道网格的列中
- 网格内的计算
- Javascript网格计算
- 如何在剑道网格上进行计算
- extjs网格,用于分组摘要的计算
- 如何计算d3.js卫星投影的投影旋转和网格扩展
- ui网格(ng网格)计算的宽度太宽
- 使用 jquery 在网格视图中计算行总计和总计
- 用javascript计算网格的坐标
- 计算如果数字字符串循环|十六进制网格圆形世界
- 不计算每一行网格.net
- 画布上的堆叠框html 5有它的工作可以't计算出网格阵列和速度的微小修正
- 计算网格视图字段总数并使用 javascript 显示在页脚文本框中
- 在使用javascript和jquery计算网格视图单元格的总数时,得到错误
- 在 ThreeJS 中计算网格的体积大于边界框体积