Javascript 单击按钮上的Jgrid保存单元格
嗨, 我使用的是Javascript 单击按钮上的Jgrid保存单元格,javascript,jquery,jquery-ui,jquery-plugins,jqgrid,Javascript,Jquery,Jquery Ui,Jquery Plugins,Jqgrid,嗨, 我使用的是afterSaveCell,如果我们修改了单元格,它就会被触发 我的场景是,我在“保存更改”按钮上对数据库进行批量更新。但当用户编辑单元格并到达另一个单元格时,我将修改记录在一个数组中 但是,如果用户编辑单元格并单击“保存更改”按钮,单元格焦点不会丢失(仍处于编辑模式)并且afterSaveCell不会被激发 是否有任何方法可以启动Save the cell on(保存单元格)按钮单击,以便afterSaveCellget fires(保存单元格) 请帮帮我。。 谢谢。您可以调用
afterSaveCell
,如果我们修改了单元格,它就会被触发
我的场景是,我在“保存更改”按钮上对数据库进行批量更新。但当用户编辑单元格并到达另一个单元格时,我将修改记录在一个数组中
但是,如果用户编辑单元格并单击“保存更改”按钮,单元格焦点不会丢失(仍处于编辑模式)并且afterSaveCell
不会被激发
是否有任何方法可以启动Save the cell on(保存单元格)按钮单击,以便afterSaveCell
get fires(保存单元格)
请帮帮我。。
谢谢。您可以调用方法。此方法将iRow
和iCol
作为参数。要了解当前可编辑单元的参数,可以将其添加到网格中。因此,您将iRow
和iCol
的最后一个值保存在jqGrid之外的变量中,并在“保存更改”按钮的点击事件中使用这些参数进行调用
// This worked Perfectly fine for me, hope will work for you as well.
var selectedCellId;
var $gridTableObj = $('#jqGridTable');
$gridTableObj.jqGrid({
datatype : "jsonstring",
datastr : gridJSON,
height : ($(window).height() - 110),
width : ($(window).width() - 80),
gridview : true,
loadonce : false,
colNames : columnNames,
colModel : columnModel,
rowNum : gridJSON.length,
viewrecords : true,
subGrid : false,
autoheight : true,
autowidth : false,
shrinkToFit : true,
cellsubmit : 'clientArray',
cellEdit : true,
jsonReader : {
root : "rows",
repeatitems : false
},
onCellSelect : function(id, cellidx, cellvalue) { // use this event to capture edited cellID
selectedCellId = cellidx; // save the cellId to a variable
},
loadComplete : function(data) {
jQuery("tr.jqgrow:odd").addClass("oddRow");
jQuery("tr.jqgrow:even").addClass("evenRow");
}
});
//单击事件jqgrid“saveCell”附加以保存单元格
var gridCellWasClicked = false;
window.parent.document.body.onclick = saveEditedCell; // attach to parent window if any
document.body.onclick = saveEditedCell; // attach to current document.
function saveEditedCell(evt) {
var target = $(evt.target);
var isCellClicked = $gridTableObj.find(target).length; // check if click is inside jqgrid
if(gridCellWasClicked && !isCellClicked) // check if a valid click
{
var rowid = $gridTableObj.jqGrid('getGridParam', 'selrow');
$gridTableObj.jqGrid("saveCell", rowid, selectedCellId);
gridCellWasClicked = false;
}
if(isCellClicked){
gridCellWasClicked = true; // flat to check if there is a cell been edited.
}
};
好的。我会记住的。谢谢