2012-02-17 9 views
0

私は、いつでもjsonレコードのコレクションを受け取ることができます。各レコードには、グリッドに他と並行して実行する操作を指示するタグがあります属性。例えば、入ってくるコレクション内のグリッドは(idはキーである)次が発生することがあります。標準以外のext​​ jsグリッドサーバ通信を処理する

{"records": 
    [{"id":"101", "name":"I'm new", "op":"create"}, 
    {"id":"102", "name":"I'm old", "op":"delete"}, 
    {"id":"103", "name":"I'm different", "op":"update"}] 
} 

私は上のこれらのさまざまな操作を実行するために、グリッドまたはストアを伝えるためにコードを書くしようとしていますしかし、その操作をしておらず、サーバーにポストバックする(結局、そのディレクティブがどこから来たのか)。クライアントグリッドを置くだけで、オブジェクトがポップインしたり、存在しなくなったりする可能性のあるサーバー上の情報を表す必要があります。

私は、プロキシの読者と作家を調べたり、jsonプロキシ自体を継承したり、読み書きの動作を変更したりしていますが、destroy/create/updateコマンドを呼び出す必要があるようですモデルの動作を短絡させて、そのクラッシュした動作をサーバーに戻さないようにします。しかし、これらのオプションのどれもかなり正しいと感じていません。

この場合、プロキシ/読み取り/書き込みオブジェクトの代わりに使用する必要があるext-jsコンポーネントはありますか?

答えて

2

あなたはこれを考えています。
操作をグリッドに戻す必要はありません。サーバーがレコードの欠落(削除)した新しいデータセットを送信すると、グリッドに表示されません。変更されたデータセットをグリッドに送る(書き込み)場合、それらの変更が表示されます。また、サーバー側でレコードを追加して、グリッドにセットを送信すると、新しいレコードが表示されます。

基本的に、サーバー側がすべての変更をドライブする場合、ライターの設定は必要なく、読み取り専用のグリッドが必要です。

+0

DmitryB - 削除を見てください:データは完全に更新されていませんが、残念ながら今のところはあまりにも多くあります。デルタ操作はまた、トランザクショングループに来るときのトラブルを救うので、グリッドにレコードがあり、削除がマークされたレコードにオペレータが来ると、グリッドはそうする必要があります。更新と同じで、挿入と同じです。それらは原子操作であり、リフレッシュではありません。 – inyourcorner

+1

私が正しく理解していれば、グリッドにはたくさんのデータがあり、全体をリフレッシュしたくはありません。しかし、サーバーサイドの変更でグリッドを更新する必要があります。 - サーバーサイドプッシュの場合のように聞こえます。したがって、この場合は、コントローラメソッドがメッセージを取得し、受け取ったレコードごとにストア操作を実行することが必要な場合があります。それはすべてカスタムですが、それほど複雑ではありません。 – dbrin

+0

はい、私は同意します。私はここにカスタムコードを書くことを期待していたので、そこでnpしてください。ちょうど正しい方向に私を開始する質問:店の操作を実行する私のコントローラメソッド:私はストア(またはモデル)の更新/作成/破壊メソッドを呼び出す場合は、サーバーにコールバックしようとしない、オリジナルのプッシュはどこから来たのですか?これは私の主な関心事です。正しいオブジェクト(モデル)で操作していないか、何もしない(つまりサーバーにプッシュする)モデルcrud opsのデフォルトの動作を上書きする必要があります。助けてくれてありがとう; upvotingコメント。 – inyourcorner

関連する問題