SO でこの問題に関する手がかりを探していたところ、編集操作で Jqgrid が oper=“add” として「add」を送信するのはなぜですか? . Oleg は、これはバグであり、修正されたと言っていましたが、インライン編集を使用して同じ問題を抱えています。jqGrid 4.4.1 を使用しています。
私の場合、行を追加して保存してから編集しようとすると、この問題が発生します。[保存] をクリックして変更を保存すると、クエリ文字列がoper=add
これが参考のための私のスクリプトです。私はまだこの素晴らしいプラグインを学んで 2 日目なので、きれいだとは思いません。
$(function () {
var grid = $("#list");
grid.jqGrid({
url: "@Url.Action("GetClassList", "Setup")",
datatype: "json",
height: 220,
width: 800,
colNames: ["Code", "Name", "Duration"],
colModel: [
{ name: "Code", index: "Code", width: 120, editable: true, key: true },
{ name: "Name", index: "Name", width: 250, editable: true },
{ name: "Duration", index: "Duration", width: 120, editable: true }
],
rowNum: 10,
rowList: [10, 20, 30],
pager: '#listPager',
sortname: "Code",
viewrecords: true,
sortorder: "desc",
multiselect: false,
subGrid: true,
editurl: "@Url.Action("UpdateClass", "Setup")",
caption: "Class Information",
subGridRowExpanded: function(subgrid_id, row_id) {
var subgrid_table_id, pager_id;
subgrid_table_id = subgrid_id+"_t";
pager_id = "p_"+subgrid_table_id;
$("#"+subgrid_id).html("<table id='"+subgrid_table_id+"' class='scroll'></table><div id='"+pager_id+"' class='scroll'></div>");
var classCode = grid.jqGrid("getCell", row_id, "Code");
var http_get_url = "@Url.Action("GetClassScheduleList", "Setup", new { id = "_CC_PH_" })";
http_get_url = http_get_url.replace("_CC_PH_", classCode);
var http_post_url = "@Url.Action("UpdateClassSchedule", "Setup", new { id = "_CC_PH_" })";
http_post_url = http_post_url.replace("_CC_PH_", classCode);
jQuery("#"+subgrid_table_id).jqGrid({
url: http_get_url,
datatype: "json",
prmNames: {id: "rid"},
colNames: ["", "Day", "Start Time", "Block", "Room", "Is Selected"],
colModel: [
{ name: "Num", index: "Num", width:0, hidden: true, key: true },
{ name: "Day", index: "Day", width: 120, editable: true, edittype: "select", editoptions: { value: "Sunday:Sunday;Saturday:Saturday;Monday:Monday;Tuesday:Tuesday;Wednesday:Wednesday;Thursday:Thursday;Friday:Friday" }},
{ name: "Start Time", index: "Start Time", width: 120, align: "right", editable: true},
{ name: "Block", index: "Block", width: 70, align: "right", editable: true},
{ name: "Room", index: "Room", width: 70, align: "right", editable: true},
{ name: "Is Selected", index: "Is Selected", width: 100, align: "right", editable: true, edittype: "checkbox", editoptions: { value:"Yes:No" }}
],
rowNum:20,
pager: pager_id,
sortname: 'Num',
sortorder: "asc",
multiselect: false,
editurl: http_post_url,
height: '100%',
});
jQuery("#"+subgrid_table_id).jqGrid('navGrid',"#"+pager_id,{edit: false, add: false, del: false, search: false },{reloadAfterSubmit: true})
jQuery("#"+subgrid_table_id).jqGrid('inlineNav',"#"+pager_id)
},
subGridRowColapsed: function(subgrid_id, row_id) {
// this function is called before removing the data
//var subgrid_table_id;
//subgrid_table_id = subgrid_id+"_t";
//jQuery("#"+subgrid_table_id).remove();
}
});
jQuery("#list").jqGrid('navGrid', "#listPager", { edit: false, add: false, del: false, search: false },{reloadAfterSubmit: true});
jQuery("#list").jqGrid('inlineNav', "#listPager");
});