Jquery jqGrid中的总金额
我正在使用jqGridJquery jqGrid中的总金额,jquery,jqgrid,Jquery,Jqgrid,我正在使用jqGrid $("#list").jqgrid(){ .... editurl:"editMedicineGridData.html", onCellSelect : function(rowid, iCol, cellcontent) { $('#prescribedDate').val(jQuery("#madicineGrid").jqGrid('getCell',rowid, 'PrescriptionDate')); },
$("#list").jqgrid(){
....
editurl:"editMedicineGridData.html",
onCellSelect : function(rowid, iCol, cellcontent) {
$('#prescribedDate').val(jQuery("#madicineGrid").jqGrid('getCell',rowid, 'PrescriptionDate'));
},
gridComplete: function(){
var grid = $("#madicineGrid"),
sum = grid.jqGrid('getCol','totalAmount', false, 'sum');
$('#totalMedicineCharge').html(sum);
},
ondblClickRow: function (rowid,name,val,iRow,iCol) {
$(this).jqGrid('editRow', rowid, true, null, null, null, {}, function (rowid) {
});
},
afterSaveCell : function(rowid,name,val,iRow,iCol) {
if(name == 'SaleQuantity') {
var Qval = jQuery("#madicineGrid").jqGrid('getCell',rowid,iCol+1);
var Aval = jQuery("#madicineGrid").jqGrid('getCell',rowid,iCol);
jQuery("#madicineGrid").jqGrid('setRowData',rowid,{totalAmount: parseFloat(Aval) * parseFloat(Qval)});
}
var grid = $("#madicineGrid"),
sum = grid.jqGrid('getCol','totalAmount', false, 'sum');
$('#totalMedicineCharge').html(sum);
}
});
所以我想更新我的数据并更改它。
我的问题是,当我使用双击行事件时,我无法调用afterSaveCell
事件,而当我使用afterSaveCell
事件时,我无法更新数据。
我两者都想要。那么解决方案是什么呢。我在前面的回答中写道,不能将内联编辑与单元格编辑混为一谈。只有在使用单元格编辑时,才会调用回调afterSaveCell
。因此,您应该使用的aftersavefunc
callback根据其他两列的新值重新计算totalAmount
列的包含。例如,如果有列金额
和数量
,并且需要根据列中的新值重新计算总金额
,则可以执行以下操作:
ondblClickRow: function (rowid,name,val,iRow,iCol) {
$(this).jqGrid("editRow", rowid, {
keys: true,
aftersavefunc: function (rowid) {
$(this).jqGrid("setCell", rowid, "totalAmount",
parseFloat($(this).jqGrid("getCell", rowid, "amount")) *
parseFloat($(this).jqGrid("getCell", rowid, "quantity")));
}
});
}
@奥列格
我的解决方案
$("#list").jqgrid(){
....
editurl:"editMedicineGridData.html",
onCellSelect : function(rowid, iCol, cellcontent) {
$('#prescribedDate').val(jQuery("#madicineGrid").jqGrid('getCell',rowid, 'PrescriptionDate'));
},
gridComplete: function(){
var grid = $("#madicineGrid"),
sum = grid.jqGrid('getCol','totalAmount', false, 'sum');
$('#totalMedicineCharge').html(sum);
},
beforeSubmitCell : function(rowid,celname,value,iRow,iCol)
{
if(celname=='SaleQuantity'){
return {'SaleQuantity':value,'id':rowid,'oper':'edit','Amount':jQuery("#madicineGrid").jqGrid('getCell',rowid,'Amount')};
}},
afterSaveCell : function(rowid,name,val,iRow,iCol) {
if(name == 'SaleQuantity') {
var Qval = jQuery("#madicineGrid").jqGrid('getCell',rowid,'SaleQuantity');
var Aval = jQuery("#madicineGrid").jqGrid('getCell',rowid,'Amount');
jQuery("#madicineGrid").jqGrid('setRowData',rowid,{totalAmount: parseFloat(Aval) * parseFloat(Qval)});
}
var grid = $("#madicineGrid"),
sum = grid.jqGrid('getCol','totalAmount', false, 'sum');
$('#totalMedicineCharge').html(sum);
}
});