微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

javascript – 在单元格编辑中获取extjs中的行数据

我正在创建一个Extjs网格.其中大部分列都是可编辑的.我需要的是,如果用户更改模糊的任何列值,我将调用我的方法根据其他列值进行一些计算.并将列值替换为计算值.code在这里.

var incoMetaxOverrideModel = new Ext.grid.ColumnModel([{
    id : 'fromDate',
    header : "From Date",
    dataIndex : 'fromDate',
    width : 80,
    renderer : drenderer,
    editor : this.fromDateEditor
}, {
    id : 'toDate',
    header : "To Date",
    dataIndex : 'toDate',
    width : 80,
    renderer : drenderer,
    editor : this.toDateEditor
}, {
    id : 'rawTax',
    header : "Raw Tax",
    dataIndex : 'rawTax',
    width : 80,
    align : 'right',
    selectOnFocus : true,
    editor : new Ext.form.NumberField({"blur":this.calculateTaxForword}),
    renderer : Gts.payItemRenderer()
}, {
    id : 'surcharge',
    header : "Surcharge",
    dataIndex : 'surcharge',
    width : 80,
    align : 'right',
    selectOnFocus : true,
    editor : new Ext.form.NumberField({}),
    renderer : Gts.payItemRenderer()
}, {
    id : 'cess',
    header : "Cess",
    dataIndex : 'cess',
    width : 80,
    align : 'right',
    selectOnFocus : true,
    editor : new Ext.form.NumberField({}),
    renderer : Gts.payItemRenderer()
}, {
    id : 'totalTax',
    header : "Total Tax",
    dataIndex : 'totalTax',
    width : 80,
    align : 'right',
    selectOnFocus : true,
    editor : new Ext.form.NumberField({}),
    renderer : Gts.payItemRenderer()
}, {
    id : 'taxAmount',
    header : "Taxable Income",
    dataIndex : 'taxAmount',
    width : 100,
    align : 'right',
    selectOnFocus : true,
    editor : new Ext.form.NumberField({}),
    renderer : Gts.payItemRenderer()
}, {
    id : 'remarks',
    header : "Remarks",
    dataIndex : 'remarks',
    width : 250,
    editor : new Ext.form.TextField({})
}, {
    id : 'modifiedDate',
    header : "Modified On",
    dataIndex : 'modifiedDate',
    width : 100,
    renderer : Ext.util.Format.dateRenderer('d M Y h:i:s A'),
    width : 150
}

]);

this.itoGrid = new Ext.grid.EditorGridPanel({
    store : this.itoStore,
    cm : incoMetaxOverrideModel,
    autoExpandColumn : 'remarks',
    autoScroll : true,
    containerScroll : true,
    frame : false,
    stripeRows : true,
    width : 830,
    height : 233,
    clicksToEdit : 1,
    layout : 'fit',
    loadMask : true,
    tbar : [this.addAction, this.deleteAction],
    trackMouSEOver : true
});

我创建了方法

calculateTaxForword :function(){
    console.log(this.itoGrid) 
    //console.log(this.itoGrid.getStore().getModifiedRecords())
}

但它不会来.我必须根据原始tax.surcharge和cess计算价值所以我需要我的方法中的所有价值.如果这样做任何一个请帮助

解决方法:

CellEditing插件一个可以监听的beforeedit事件:
http://docs.sencha.com/ext-js/4-1/#!/api/Ext.grid.plugin.CellEditing-event-beforeedit

这将使您可以访问以下内容

Parameters
editor : Ext.grid.plugin.CellEditing
e : Object
An edit event with the following properties:

grid - The grid
record - The record being edited
field - The field name being edited
value - The value for the field being edited.
row - The grid table row
column - The grid Column defining the column that is being edited.
rowIdx - The row index that is being edited
colIdx - The column index that is being edited
cancel - Set this to true to cancel the edit or return false from your handler.
eOpts : Object - The options object passed to Ext.util.Observable.addListener.

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐