gpt4 book ai didi

javascript - 使用 JSON 对象填充 KendoGrid

转载 作者:行者123 更新时间:2023-11-28 09:19:01 25 4
gpt4 key购买 nike

我对 Kendo UI 和 Knockout 非常陌生(3 天!),我正在尝试将旧版 Java 小程序转换为 Javascript。到目前为止,创建和绑定(bind) kendoGrid 相对容易:

函数JobViewModel() { var self = this;

self.jobData = new ko.observableArray([]);

self.grdJobs = {
scrollable: true,
sortable: true,
filterable: false,
columnMenu: true,
resizable: true,
columns: [
{ title: "Job ID", field: "jobID" },
{ title: "Owner", field: "owner" },
{ title: "Description", field: "description" },
{ title: "State", field: "runState" },
{ title: "Start Time", field: "timeStart" },
{ title: "End Time", field: "timeEnd" },
{ title: "Elapsed Time", field: "timeElapsed" },
{ title: "Progress", field: "progress" },
{ title: "Agent", field: "agent" },
{ title: "Last Action", field: "lastAction" }
],
selectable: "single"
};

};

从服务器返回的数据是一个 JSON 对象数组(任意长度),如下所示(为简洁起见,已缩短):

[{0: 1, 2: 3, 4: 5, ...}, {0: 1, 2: 21, 4: 5, ...}, {0: 1, 2: 23, 4 : 5, ...}]

这个数字键/值对对象数组被映射到一个字典对象,其中数字键与字符串值配对,如下所示:

{0:“状态”1:“完成”2:“职位编号”3:“54759”4:“主人”5:“约翰”...21:“54758”...23:“54757”...}

我需要获取的是字典中的映射字符串,因为它们与 JSON 对象数组相关。我尝试的方法是 JSON.stringify(obj[i]) 但后来我不确定我可以用它做什么(也许在可以分配给 kendoGrid 的 ko.observable 中使用它?)无论如何,我做什么根据我上面显示的示例数据,我得到的是一个网格,其中包含列标题“作业 ID”、“所有者”和“州”以及 3 行作业(54757、54758、54759),全部由 John 和 State 所有完成。

我希望这一切都有道理。我想我真正需要的是如何获取 JSON 并将其转换为可以填充到 Kendo Grid 中的可用内容。感谢您帮助 JS/JSON/Kendo/Knockout 新手!

最佳答案

您可以尝试将您拥有的这两个数组映射到另一个包含您可以使用的元素的数组。

我做了一个简单的 jsFiddle 来演示这一点:jsFiddle

代码非常简单:

var data = [{ 0: 1, 2: 3 }, { 0: 4, 2: 3 }];
var mapping = { 0: 'State', 1: 'Finished', 2: 'Owner', 3: 'John', 4: 'Pending' };

var realData = [];
$.each(data, function(index, obj) {
var arrayElem = {};
$.each(obj, function(key, value) {
arrayElem[mapping[key]] = mapping[value];
});
realData.push(arrayElem);
});

关于javascript - 使用 JSON 对象填充 KendoGrid,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15263157/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com