私は Web UI、Dojo、Java などに不慣れです。事前のトピックを参照している場合は、参考文献を教えてください。それが役立ちます。
環境:
URL のターゲット + id を取るJsonStoreを使用してGridxデザインをしています。固定された「id」を使用すると、グリッドは適切にロードされます。
Dynamic Treeがあります。遅延読み込みなどで正常に動作しています。
目的:
ツリー内の特定のノードのクリック (または dblclick) イベントに基づいて、Gridx にデータをロードする必要があります。したがって、ツリー ノード "id":7 がクリックされると、JsonStore: /target/7 が取得され、Gridx に読み込まれます。
問題:
ご想像のとおり、最初は JsonStore に入力する有効な「id」プロパティはありません。ツリーのクリック イベント ハンドラーでは、ユーザーがクリックすると、この値を取得します。したがって、「準備完了」で gridx.startup() を呼び出すことはできません。ウィジェットを「準備完了」に「配置」しましたが。
したがって、次のスニペットを処理する必要があります。
// this function is called from tree event handler
function LatestTabGridxLoad( id ) {
console.log( "ID %s fetched.", id );
LatestTabGridxStore.idProperty = id;
LatestTabGridx.startup();
LatestTabGridx.body.refresh();
}
ready(function()
{
TabLatestAssetTree.startup();
LatestTabGridx.placeAt( "ReportMiddleTabLatestCenterContainer" );
}
さて、問題は、最初の読み込み時に、ユーザーがクリックせずに「id」なしで、/target/ だけで JsonStore GET が起動されることです。したがって、サーバーは 405 で応答します。その後、ユーザーがクリックすると、「id」のない同じ HTTP GET が HTTP 405 になります。どうにかして「id」を GET URL にフィードできません。私はJSONをチェックしました.それは宣言的(ly)に定義されたスタンドアロンテーブルで動作するので、完璧な形です.
TREEノードをその「id」を介してGridxにリンクする方法を提案してください。また、私が取っているアプローチがこの問題を解決する正しい方法であるかどうかを提案します。