2011-01-06 8 views
2

これは2つの部分の質問かもしれません。最初は "私は間違っている"と2番目は "これは正しい方法ですか?"とにかく...jqGrid saveRow with error関数

私はjqgridで編集した行を保存しようとしていますが、何らかの理由でまだ特定できませんでした。エラーイベントはinline editingを使って取得できません。

table.saveRow(rowId, 
        false, 
        false, 
        optionalParams, 
        false, 
        function() { common.ShowMeSomething("error fired"); }, 
        false); 

ShowMeSomethingは現在、警告はありませんが、大したことはありませんが、起動しません。 function(res、stat) - 私はreturn Jsonを使ってそれらを模倣しようとしました(新しい{res = "hi"、stat = false})エラーイベントを発生させるためにjavascriptを歩いて運がない。運がない。

また、これを行うには良い方法がありますか?検証の理由から、エラーが戻ってくる必要があります。

答えて

1

問題が不明確でした。いくつかのグリッド機能では、エラー==偽と成功== trueですが、そうではありません。最初のパラメータはrowIdで、2番目のパラメータはです。サーバーへの成功コールはです(基本的に存在し、http応答を取得しました)。私が期待したものは、私が作成できなかった完全な失敗のために予約されています。

関数をこの2番目のパラメータに移動し、結果からエラー処理を行うことで、単純なJson(whateverObject)のリターンと、リセット、エラーの表示などの処理が必要になります。

0

jqGridのコードと、エラーを生成するMVCコントローラアクションのコードを含めないでください。だから私はあなたの問題の理由が何であるかを推測するだけでした。

サーバー部分の1つの理由は、エラーをJson(...)として返し、エラーコードにHTTP response status codeを変更しない可能性があります。エラーの場合は、HttpContext.Response.StatusCode = 500のようなコードで応答コードを設定するか、HttpExceptionを使用します。

クライアント側のもう1つの理由は、現在編集されていない行をeditRowに保存しようとする可能性があるということです。メソッドeditRowは編集行に対して追加の属性 "editable" = "1"を設定し、saveRowはこの属性を持つ行のみを保存します。

あなたの質問の本文に、より多くのクライアントとサーバーのコードが含まれていると、より効果的です。