私はDojoを初めて使いました。私は自分のパートナーの前にいくつかのかなり基本的な概念をラップして新しいプロジェクトに着手しようとしています。 ItemFileWriteStoreを使用してAjaxリクエストからDataGridに返されたデータを取得するのに成功しましたが、代わりに新しいメモリストアを使用したいと思います。 ObjectStoreアダプタを使用してメモリストアをラップし、データがグリッドに読み込まれています。dojo ObjectStoreアダプターでdeep:true照会オプションを使用する
私は心配しています。私が実行しているコード例では、グリッドを生成するために使用しているJSONオブジェクトにいくつかの入れ子にされたノードがあります。これは、dojoドキュメントで使用する国JSONオブジェクトの1つです。ここでは、そのオブジェクトの少し抜粋です:DataGridのインスタンスで
'items': [
{ 'name':'Africa', 'type':'continent', children:[
{ 'name':'Egypt', 'type':'country' },
{ 'name':'Kenya', 'type':'country', children:[
{ 'name':'Nairobi', 'type':'city' },
{ 'name':'Mombasa', 'type':'city' } ]
},
{ 'name':'Sudan', 'type':'country', 'children':
{ 'name':'Khartoum', 'type':'city' }
} ]
},
]
が、私は、クエリに送信し、その後、私は{深い:真}にqureyOptionsを設定するので、のような:
var grid = new DataGrid({
style: "width: 500px; height: 300px;",
store: this._geoStore,
structure: layoutGeo,
rowSelector: '20px',
columnReordering: true,
query: {},
queryOptions: { deep: true },
rowsPerPage: 20
}, document.createElement("div"));
私が使用します古いItemFileWriteStore、これは正常に動作し、すべてのネストされたデータは基本的に平坦化され、グリッドに配置されます。ただし、ObjectStoreアダプタでラップされたメモリストアに切り替えると、グリッドに表示される唯一のデータはデータオブジェクトの一番上の親です。サンプルデータの場合、アフリカに関連するデータのみが表示され、その子は表示されません。したがって、メモリストアを使用しているときは、queryOptions {deep:true}ステートメントは影響を与えていないようです。
ObjectStoreでラップされたメモリストアを使用してJSONオブジェクト内のネストされたデータをデータグリッドに取得する方法はありますか?私は、ラッパークラスがこれを世話してくれたと思っていたでしょうが、そうかもしれませんが、それを修正する方法はわかりません。
皆様のご支援をいただき、ありがとうございました。ご自分の専門知識を共有していただきたいと願っております。私は本当にこれを理解しようとしている間、ドジョーとウェブを長い間研究してきました。私は何かを明らかにしている可能性があり、あなたがすべて助けることを望んでいることを恐れる。
応答のためにありがとうCraig。私はあなたにいつかあなたにこれに関するいくつかの質問をしなければならないかもしれません。 doChildrenとgetParentメソッドをDojoツールキットの他のウィジェットとの関係で使用する方法を学ぶ必要があると私は今思っています。私はそれらを調べていませんが、階層的なデータ交換の必要性があることがわかります。 – mike