将 kendo ui 数据源绑定到规范化数据
bind kendo ui data source to normalized data
如何将数据源绑定到规范化数据?我知道我可以获取字段和 data2 数组并构建一些看起来像 data1 的东西,但这对于大量数据来说会很耗时。
// Denormalized
var data1 = [{"name":"John", "age":20},{"name":"Tom", "age":25}];
// Normalized
var fields = ["name","age"];
var data2 = [["John",20],["Tom",25]];
确实手动映射大量数据会很耗时,没有办法直接映射Kendo网格数据源来规范化数据。
但是如果网格的数据源在服务器中进行分页,那么处理每页数据的时间将不是主要问题。如果不是这种情况,您可以使用一些库来帮助您完成该过程,我在类似情况下使用 lazy.js 没有任何问题。
对于您的特定示例,它看起来像这样:
var fields = ["name","age"];
var data2 = [["John",20],["Tom",25]];
var dest = []
data2.forEach(function(e,i){
var obj = {};
e.forEach(function(o,i){
obj[fields[i]]=o;
});
dest.push(obj);
});
其中 dest
数组将保存非规范化数据。
如何将数据源绑定到规范化数据?我知道我可以获取字段和 data2 数组并构建一些看起来像 data1 的东西,但这对于大量数据来说会很耗时。
// Denormalized
var data1 = [{"name":"John", "age":20},{"name":"Tom", "age":25}];
// Normalized
var fields = ["name","age"];
var data2 = [["John",20],["Tom",25]];
确实手动映射大量数据会很耗时,没有办法直接映射Kendo网格数据源来规范化数据。
但是如果网格的数据源在服务器中进行分页,那么处理每页数据的时间将不是主要问题。如果不是这种情况,您可以使用一些库来帮助您完成该过程,我在类似情况下使用 lazy.js 没有任何问题。
对于您的特定示例,它看起来像这样:
var fields = ["name","age"];
var data2 = [["John",20],["Tom",25]];
var dest = []
data2.forEach(function(e,i){
var obj = {};
e.forEach(function(o,i){
obj[fields[i]]=o;
});
dest.push(obj);
});
其中 dest
数组将保存非规范化数据。