EditorGridPanel
新しいレコードを追加するためのツールバー ボタンがあります。1 つのシナリオを除いて、すべて正常に動作します。データベースに既に存在するレコードを挿入しようとすると、サーバーから次のメッセージが返されます。
{"success":false,"message":"already exists","data":{}}
ただしgrid
、赤い三角形でマークされた新しい行を作成します。その後、新しいレコードを挿入しようとすると (データベースに存在しない場合でも)、サーバー側ではすべて正常に動作しますが、firebug で「キャッチされていない例外」が発生します。それは言います:
'uncaught exception: Ext.data.DataReader: #realize was called with invalid remote-data. Please see the docs for DataReader#realize and review your DataReader configuration.'
何故ですか?
編集 私はそれを発見しました:
新しいレコードを挿入しようとすると、パラメーターdata
を指定してポストリクエストをサーバーに送信する挿入メソッドを使用します (encode は true、listful は true):
data [{"Name":"123"}]
サーバーから取得します:
{"success":true,"data":{"PositionId":"eef1d9f3-9fdf-4b87-9f6c-ef42231f4fed","Name":"123"}}
その後、同じ名前のアイテムを作成しようとします:
data [{"Name":"123"}]
だから私は得る:
{"success":false,"message":"already exists","data":{}}
サーバーから。
次に正しいアイテムを作成しようとすると、ストアは2つのアイテムを含む配列を送信します
data [{"Name":"1234"},{"Name":"123"}]
ただし、サーバーは最初の (最新の) アイテムのみを作成して送り返します。
{"success":true,"data":{"PositionId":"1ff05c7f-d5fc-41cd-81f3-faabc225b2a6","Name":"1234"}}
そのため、ストアがサーバーに 2 つのアイテムを作成するように要求しているにもかかわらず、1 つだけが返送されるため、エラーが発生する可能性があります。
では、どのように対処すればよいのでしょうか? 再度、不合格品の依頼を出さないようにすることはできますか?