0

次のようなjson文字列があるとします: コード:

{"Staff":[{"id":1,"name":"John"},{"id":2,"name":"Mary"},{"id":3,"name":"Sandra"}],"Students":[{"id":2,"name":"Peter"},{"id":3,"name":"Carl"},{"id":4,"name":"Hodges"}]}

(注: より適切な形式の json 文字列を見たい場合は、http://json.parser.online.fr/に貼り付けてください)

そして、cmbStaff と cmbStudents の 2 つのコンボボックスがあります。両方のコモボックスを同じストアにバインドすることは可能ですが、jsonreaders は異なりますか? つまり、cmbStaff の datareader は root: 'Staff' の文字列を読み取り、cmbStudent は root 'Students' の文字列を読み取りますか?

これは、ストアによって作成される AJAX 取得の量を節約し、コンボボックスごとに異なるストアを用意するためです (私のフォームに 20 個のコンボボックスがあると想像してください!)。

何か案は?さらに情報が必要な場合は、お気軽にお知らせください。ありがとうございます。

4

5 に答える 5

1

私はこれについて 100% ではありませんが、ベスト プラクティスはコンボ ボックスごとに 1 つのストアであると確信しています。フォームを作成するために 20 の小さな AJAX リクエストを作成する必要がある場合、20 のリクエストを作成します。実際にはそれほど多くのデータではありません。長期的には、一連のコンボ ボックスからの無関係なデータをすべて含むスーパー リクエストが発生しないため、アプリの保守が容易になります。

于 2010-11-26T14:06:13.367 に答える
0

2 つの異なる JsonReader を持つことができます。それらを手動で切り替えるだけです(つまり、コンボボックスのイベントを使用して)。

于 2010-11-28T17:31:54.597 に答える
0

基本的なルールは次のとおりです。

基になるデータセットは同じですが、異なる列を表示する必要がありますか? 同じストアを使用しても問題ありません (コンボボックスを必要なフィールドにポイントするだけです)。

基礎となるデータセットが異なる (目的のフィールド間に関係がない) ? 別のストアを使用する必要があります。

于 2010-11-29T11:48:15.687 に答える
0

ロード操作の後、ストアにはレコードのセットが 1 つだけ含まれます。上記を実行しても、必要なものは得られません。

2 つの別々のストアを使用します。1 つは学生などをロードするように構成され、もう 1 つ は load イベントの受信時に最初に取得された json を使用してloadData関数を使用してスタッフをロードするように構成されています。

于 2010-11-26T22:07:21.840 に答える
0

他の人が言ったように、コンボボックスごとに 1 つのストアが必要です。

かなり静的なデータがある場合は、一度 Json として取得し、グローバル配列に貼り付けます。コンボごとに単純な ArrayStores を使用して、常にサーバーに戻らないようにします。

データが揮発性である場合は、データを何度も取得する必要があるため、2 つの別個の JsonStores を使用して、同じスクリプトを実行してデータをサーバーに送信する JsonReaders を使用することもできます。

于 2010-11-27T08:08:47.890 に答える