0

私はjqGridを使用しています。

$("#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データを更新できないことです。私は両方が欲しいので、What's Solutions.

4

2 に答える 2

0

以前の回答の回答で、インライン編集とセル編集を混在させることはできないと書きました。コールバックは、セル編集を使用する場合にのみafterSaveCell呼び出されます。したがって、 editRowのコールバックを使用して、他の 2 つの列からの新しい値に基づいて列の内容を再計算する必要があります。たとえば、列があり、列の新しい値に基づいて再計算する必要がある場合は、次のことができます。aftersavefunctotalAmountamountquantitytotalAmount

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")));
        }
    });
}
于 2012-11-09T09:01:36.377 に答える