ログを保存した後にグリッドをリロードしようとすると、ロギング目的の行のIDを取得できるようになりましたが、 'aftersavefunc'と 'successfunc'保存する前にreloadGrid( '#telephoneGrid')を起動します。 'aftersavefunc'と 'successfunc'は同一であるようです。今では、行の追加や編集はできません。'saveRow'の前に 'aftersavefunc'と 'successfunc'が発生する
var lastSel;
function onTelephoneSelect(id, status, e) {
if ($(e.target).hasClass('edit')) {
var editParameters = getEditParameters();
if (id && id !== lastSel) {
jQuery('#telephoneGrid').saveRow(lastSel);
}
jQuery("#telephoneGrid").jqGrid('editRow', id, editParameters);
lastSel = id;
}
}
function getEditParameters() {
return {
"keys": true,
"oneditfunc": null,
"successfunc": null,
"url": '@Url.Action("SaveTelephoneEntry","TelephoneEntry")?customerId=' + $('#SelectCompany').val(),
"extraparam": {},
"aftersavefunc": reloadGrid('#telephoneGrid'),
"errorfunc": null,
"afterrestorefunc": null,
"restoreAfterError": true,
"mtype": "POST"
}
}
私は今、かなり絶望的だし、任意の実用的なソリューションを見つけ出すことができませんでした。
誰かが私をここで助けてくれるのでしょうか、すでに同じ問題に直面していて、解決策を見つけましたか?
事前に感謝します。
すべての最初に、常にあなたが使用jqGridのバージョン**、と**フォーク**についての情報を記載してください* *([free jqGrid](https://github.com/free-jqgrid/jqGrid)、商用の[Guriddo jqGrid JS](http://guriddo.net/?page_id=103334)または古いjqGridのバージョン<= 4.7)。秒後、 'aftersavefunc'の使い方は正しいですが、' reloadGrid'関数の実装に問題があると思います。 'setTimeout'を内部で使用していますか?正確に今何が間違っていますか?再読み込み後に*古いデータ*が表示されますか?どの 'datatype'にグリッドがありますか?あなたは 'loadonce:true'オプションを使いますか? – Oleg
あなたの返信ありがとう、Oleg。私は将来、バージョンとフォークを投稿することを心に留めておきます。 ジェイと呼ばれるポスターの下に私のために働く適切な答えがありました。 Everything( 'aftersavefunc'、 'successfunc')は必要に応じて動作します。 – Heimi