この問題と同じjqGridテーブルがあり、サーバーからの情報をロードしますが、ローカルに保存するため、オプションのデータ型を「ローカル」に設定しています。
また、この機能を使用するように削除ボタンを設定しました。データベースとグリッドから行を削除する必要があります。
var grid = $('#grid');
grid.jqGrid('navButtonAdd', '#pager',
{
caption: "",
buttonicon: "ui-icon-trash",
position: "first",
title: "Delete",
cursor: "pointer",
id: 'del_list',
onClickButton: function del(event) {
var rowID = grid.jqGrid('getGridParam', 'selrow');
if (rowID === null) {
$('<div title="Error"><p>Error</p></div>').dialog({
modal: true,
width: 350,
buttons: {Aceptar: function () {
$(this).dialog("close");
}},
dialogClass: "ui-jqdialog"
});
}
else {
grid.jqGrid('delGridRow', rowID,
{
width: 400,
delicon: [true, "left", "ui-icon-cancel"],
cancelicon: [true, "left", "ui-icon-close"],
beforeShowForm: function (form) {
SetFormsSize('#delmodtGrid');
},
caption: "Delete",
msg: "asdasdasd",
onclickSubmit: function (params, postdata) {
var code = parseInt(grid.find('tr:eq(' + rowID + ')').find('td:eq(0)').text());
var ver = parseInt(grid.find('tr:eq(' + rowID + ')').find('td:eq(2)').text());
var add_data = {ProjectID: code, VersionID: ver};
return add_data;
},
afterComplete: function (response, postdata) {
if (response.responseText === "Success") {
$('<div title=""><p>asdasdas</p></div>').dialog({
modal: true,
width: 400,
buttons: {Aceptar: function () {
$(this).dialog("close");
}},
dialogClass: "ui-jqdialog"
});
}
else {
$('<div title="Error: ' + response.responseText + '"><p>asdasdasd</p></div>').dialog({
modal: true,
width: 400,
buttons: {Aceptar: function () {
$(this).dialog("close");
}},
dialogClass: "ui-jqdialog"
});
}
}
});
}
}
});
データベースでの削除を処理するサーバー側のアクションがあります。それには try-catch 文があり、例外はスローされません。Firebug を使用すると、POST 要求が成功し、応答が返されます (これは、afterSubmit オプション関数を追加し、postdata をチェックした結果です)。したがって、問題は jqGrid の設定にあると思います。
サーバー側のコードを通過した後 (そして、設定すると、afterSubmit イベントが発生した後)、次のエラーが表示されます (スペイン語からの翻訳):
実行時エラー Microsoft JScript: オブジェクトはプロパティまたはメソッド 'split' を受け入れません
文中の 331 行目の jquery.jqGrid.min.js に影響します。
if(d[e.p.id].reloadAfterSubmit&&e.p.datatype!="local")
a(e).trigger("reloadGrid");
else{
var A=[];
A=H.split(",");
...
}
完全な関数から。エラーが発生する部分は、else 句の 2 番目の文です。