将剑道UI数据源绑定到规范化数据

bind kendo ui data source to normalized data

本文关键字:规范化 数据 绑定 数据源 UI      更新时间:2023-09-26

如何将数据源绑定到规范化数据?我知道我可以用字段和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数组将保存非规范化的数据。