0

次のスニペットを使用して、グリッド上の保存関数を手動で呼び出しています。インライン編集を使用しています。保存関数はカスタムオブジェクトを返す必要があります。戻り値にアクセスするにはどうすればよいですか?コールバック関数はありますか?successfuncはtrue/falseのみを返しますか?

jQuery("#grid_id").jqGrid('saveRow',rowid, succesfunc, url, extraparam, aftersavefunc,errorfunc, afterrestorefunc);
4

1 に答える 1

2

ローカルデータを保存するために使用する場合saveRowは、内部の外部変数(外部スコープで定義された変数)の値を設定するだけですmySaveFunctionパラメータの代わりにeditRow(またはsaveRow)のaftersavefuncパラメータを使用する必要があることを理解することだけが重要です。これは一般的な誤解ですが、サーバーにデータを保存する場合にのみコールバックが呼び出されます。の場合、コールバックは呼び出されません。使用法の「オブジェクト」形式を使用することをお勧めします。succesfuncsuccesfuncsuccesfunc'clientArray'editRow

var someRetValue;
jQuery("#grid_id").jqGrid('saveRow', rowid,
{
    url: 'clientArray'
    aftersavefunc: function (id, response, options) {
        someRetValue = response; // set someRetValue to any value
    }
});

反対側では、コールバック関数を独自の関数のパラメーターとして使用することを検討できます"Save""Save"にパラメータがある場合afterSaveFuncは、関数の戻り値を使用する必要はありません"Save"。従来の同期順次実行順序ではなく、非同期で動作するようにJavaScriptスクリプトを作成する必要があります。

于 2012-09-14T21:40:15.740 に答える