2016-02-03 73 views

回答

0

修改後的演示https://jsfiddle.net/OlegKi/hrzf03xh/2/使用以下實施aftersavefunc

aftersavefunc: function (rowid) { 
    var $self = $(this), 
     item = $self.jqGrid("getLocalRow", rowid), 
     total = (parseFloat(item.amount) + parseFloat(item.tax)).toFixed(2); 

    $self.jqGrid("setCell", rowid, "total", total); 
    $self.focus(); 
} 

我用於演示free jqGrid,這是我開發的叉,並且我建議你使用,但一般同技巧將與舊版本的jqGrid一起工作。在編輯本地數據(datatype: "local")的情況下,您應該小心使用getLocalRow,但在使用datatype: "json"datatype: "xml"的情況下,您應該更換爲getRowData

+0

謝謝奧列格給你回覆。保存後您的演示更新值。我想改變文本框中的模糊值。 我發現了另一種方法,爲每個列使用以下代碼。 (類型:'change',fn:function(e){myfunction(e); }}, ]}' 這對我來說更好。如果你可以幫助另一個替代選項,那麼將會很好。 –

+0

@RidvanShaikh:對不起,你應該清楚描述你想要的東西!我不能把時間花在寫越來越多的演示上。如果你讓'total'列**不可編輯**,那麼你可以像我的代碼'$ self.jqGrid(「setCell」,rowid,「total」,total);'change'處理程序內部一樣執行相同的操作。如果你想保持列可編輯,你可以通過id訪問輸入字段,並使用'$(「#」+ rowid +「_ total」).val(newValue)'。你可以通過$(e.target).closest(「tr.jqgrow」)。attr(「id」)'來獲得rowid。 – Oleg

+0

對不起,我已經寫了我的問題。我想在變化上做到這一點。無論如何,謝謝你的幫助。獲得ID幫助我處理更多,真的非常感謝您的幫助。 –