0

ストアの AjaxProxy が JsonWriter を使用して更新をサーバーに書き戻す RowEditing プラグインを含むグリッドがあります。

更新が発生すると、別のコンポーネントを更新するために何らかのコードを起動する必要があります。これには、サーバーへの別のトリップが必要です。

これは、サーバー上で更新されるデータに依存するため、JsonWriter が戻った後に起動する必要があります。そのため、ストアの「更新」イベントをリッスンできません。これは、Ajax 呼び出しが行われる前に発生するためです (バッチ処理が無効になっている場合でも)。

次のように「endupdate」のリスナーを配置しようとしましたが、AJAX 要求が行われる前に再び起動します。

        var ds = new Ext.data.Store({
            model:      modelname,
            autoSync:   true,
            proxy: {
                type:           "ajax",
                api: {
                    create:     "ajax.aspx?xaction=create",
                    read:       "ajax.aspx?xaction=read",
                    update:     "ajax.aspx?xaction=update",
                    destroy:    "ajax.aspx?xaction=destroy"
                },
                batchActions:   false,
                reader:         { type: "json", rootProperty: "rows", totalProperty: "results" },
                writer:         { type: "json", encode: true, writeAllFields: true, rootProperty: "rows" }
            },
            listeners: {
                load:       { fn: reloadPreview },
                endupdate:  { fn: reloadPreview }
            }
        });

ライターの「更新」呼び出しに対してサーバーから応答を返しません... AjaxProxyまたはJsonWriterが期待しているものに関するドキュメントが見つからないようで、空の応答を送信してもうまくいくようです。

4

1 に答える 1