1

インライン編集が可能なグリッドがあります。これを処理する onselect は次のとおりです。

onSelectRow: function(id)
        {

            $('tr[id="'+id+'"]').change(function () {

                saveparameters = {
                    "successfunc" : function(response) {

                        alert(response)

                    },
                    "url" : null,
                    "extraparam" : {},
                    "aftersavefunc" : null,
                    "errorfunc": null,
                    "afterrestorefunc" : null,
                    "restoreAfterError" : true,
                    "mtype" : "POST"
                }

                $('#breakdownGrid').jqGrid('saveRow', id, saveparameters);

            });

            if(id && id!==lastsel)
            {

                editparameters = {
                    "keys" : false,
                    "oneditfunc" : null,
                    "successfunc" : null,
                    "url" : null,
                    "extraparam" : {},
                    "aftersavefunc" : null,
                    "errorfunc": null,
                    "afterrestorefunc" : null,
                    "restoreAfterError" : true,
                    "mtype" : "POST"

                }

                $('#breakdownGrid').jqGrid('restoreRow',lastsel);
                $('#breakdownGrid').jqGrid('editRow',id, editparameters); lastsel=id;
            }
        }

    });

tr で変更イベントが発生し、saveRow が実行されることがわかります。これは、successfunc を使用せずに、または successfunc で true を返すだけで問題なく動作します。サーバーからの応答を successfunc で使用する方法を見つけようとしています。editurl ページで追加のチェックを行う必要があります。そのページから何を返送する必要があるのか​​ わかりません。そのページですべての作業を行い、true または false を返すことはできますが、機能していません。現在アラートが表示されており、[object object] と表示されています。

また、JSON を返送して解析しようとしましたが、動作させることができません。

これに関するヘルプは素晴らしいでしょう。

ありがとう!

4

1 に答える 1

2

alert(response.responseText); を試してください。

于 2012-12-29T10:26:08.997 に答える