我需要在编辑之前检索行内容或单元格内容,以便我可以将其传递给帖子数据。基本上我需要比较前后编辑值并将它们发送到数据库。这是我的代码,但beforeEdit Cell没有触发。
Grid.jqGrid({
url : URL,
editurl : UpdURL,
mtype : "POST",
postData : {'action':'wk','ID':ID},
datatype : "JSON",
page : 1,
regional : lang,
beforeEditCell : getCellCurrentValue,
idPrefix : "w_",
colNames : WkColName[lang],
colModel : [
{ name: 'ID', width: 25, hidden: true },
{ name: 'c_ID', key:true, editable: true, width: 20, editrules : { required: true, integer:true, minValue:1} },
],
autowidth : true,
height : 445,
rowNum : 20,
caption : GridCaption,
shrinkToFit : true,
sortorder : "asc",
hidegrid : false,
gridview : true,
pgbuttons : false,
pgtext : null,
viewrecords : false,
pager : GridPager,
})
.inlineNav(GridPager,{edit: true, add: true, del: false, cancel: true, refresh : false,
editParams: {keys: true,extraparam: {'action':'wk', 'ID': ID, 'oldwk' : oldwkValue}},
addParams: {position: 'last',
addRowParams:{
keys:true,
extraparam:{'action':'wk','ID':ID},
successfunc: function () {
var $self = $(this);
setTimeout(function () {
$self.trigger("reloadGrid");
}, 50);
}
}
}
});
var lastWkselRowContent;
var oldWkValue;
function getCellCurrentValue(id) {
if (id && id !== lastWkselRowContent) {
oldWeekValue = Grid.jqGrid('getCell',id,'ID');
lastWkselRowContent = id;
return oldWkValue;
}
}
答案 0 :(得分:0)
最简单的方法是使用beforeSaveRow
动态更改extraparam
并添加您需要的其他信息。您可以在editParams
和addRowParams
中添加回调。 beforeSaveRow
回调的前两个参数是options
和rowid
。 options
包含extraparam
属性,您可以扩展更改的属性。您将在savedRow
内找到的旧行,即jqGrid 的参数。我认为您可以在savedRow[0].ID
下找到所需信息。
beforeSaveRow: function (options, rowid) {
var p = $(this).jqGrid("getGridParam");
// modify extraparam
options.extraparam.oldwk = p.savedRow[0].ID;
// to be exact one can search p.savedRow array
// for the item which have p.savedRow[i].id === rowid,
// but if only one row is editing at the same time then
// the array p.savedRow have only one element and
// p.savedRow[0] have the old values: c_ID and ID
// and p.savedRow[0].id === rowid
}