Kendo UI と Knockout (3 日!) に非常に慣れていないので、レガシー Java アプレットを Javascript に変換しようとしています。これまでのところ、kendoGrid の作成とバインドは比較的簡単でした。
function 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: "ジョブ ID" 3: "54759" 4: "所有者" 5: "ジョン" ... 21: "54758" ... 23: "54757" .. . }
私が取得する必要があるのは、JSON オブジェクトの配列に関連する辞書からマップされた文字列です。私が試したアプローチは JSON.stringify(obj[i]) でしたが、それで何ができるかわかりませんでした (kendoGrid に割り当てることができる ko.observable で使用する可能性がありますか?)上記のサンプル データに基づいて作成したのは、「ジョブ ID」、「所有者」、「状態」という列ヘッダーと、3 行のジョブ (54757、54758、54759) を持つグリッドで、すべてジョンと州が所有しています。終了した。
これがすべて理にかなっていることを願っています。私が本当に必要としているのは、JSON を取得して、Kendo Grid に入力できる使用可能なものに変換する方法だと思います。JS/JSON/Kendo/Knockout 初心者を助けてくれてありがとう!