enter image description here我在一个网格中有4列,即数量,浪费,成本,最终成本。在网格的最后一行,我必须显示合并的最终成本,而没有其他显示。 我的问题是,在最后一行的“数量,浪费和成本”列中,显示0,而在商店中,这些列的数据不在最后一行。
我只想在这些列上显示空值。
数据:[{“名称”:“ Part-0000112-01”,“浪费”:“ 4.63”,“ Unit_Cost”:“ 7.00”,“数量”:“ 7.2200”,“类型”:“织物” ,“ Net_Consumption”:“ 11.8500”,“ totalCost”:“ 82.95”},{“ Name”:“ Part-0000114-01”,“ Wastage”:“ 0.0”,“ Unit_Cost”:“ 1.00”,“ Quantity” :“ 10.0000”,“类型”:“结构”,“ Net_Consumption”:“ 10.0000”,“ totalCost”:“ 10.00”},{“名称”:“ Part-0000116-01”,“浪费”:“ 2.0” ,“ Unit_Cost”:“ 1.00”,“ Quantity”:“ 10.0000”,“ Type”:“ Trim”,“ Net_Consumption”:“ 12.0000”,“ totalCost”:“ 12.00”,},{“ Name”:“ Part -0000118-01“,” Wastage“:” 0.0“,” Unit_Cost“:” 0.00“,” Quantity“:” 10.0000“,” Type“:” Trim“,” Net_Consumption“:” 10.0000“,” totalCost“: “ 0.00”},{“ totalCost”:“ 104.95”,“名称”:“总材料成本(美元)”}]
代码:
Ext.create('Ext.grid.Panel', {
store: BOMStore,
columns: [{
text: 'Name',
dataIndex: 'name'
}, {
text: 'Quantity',
dataIndex: 'Quantity',
editor: {
xtype : 'numberfield',
allowBlank : false,
listeners : {
change : function(field, newValue,o ,e) {
var quantity = field.value;
var selectedModel = this.up('grid').getSelectionModel().getSelection()[0];
var wastage = selectedModel.get('Wastage');
var unitCost = selectedModel.get('Unit_Cost');
var updateTotalCost = getTotalCost(quantity,wastage,unitCost);
selectedModel.set('totalCost', updateTotalCost);
updateRowCosting(selectedModel);
}
}
}
}, {
text: 'Wastage',
dataIndex: 'Wastage',
editor: {
xtype : 'numberfield',
allowBlank : false,
}
},{
text: 'Cost',
dataIndex: 'Unit_Cost',
editor: {
xtype : 'numberfield',
allowBlank : false,
}
},{
text: 'Total Cost',
dataIndex: 'totalCost',
editor: {
xtype : 'numberfield',
allowBlank : false,
}
}]
});
答案 0 :(得分:0)
您可以使用renderer用作转换器,因此可以检查该行是否为最后一行并返回空字符串。
Ext.create('Ext.grid.Panel', {
store: Ext.data.StoreManager.lookup('simpsonsStore'),
columns: [{
text: 'Name',
dataIndex: 'name'
}, {
text: 'Email',
dataIndex: 'email',
flex: 1
}, {
text: 'Phone',
dataIndex: 'numm',
renderer: function (value, metaData, record, rowIndex, collIndex, store) {
if (store.indexOf(record) === (store.totalCount - 1)) {
return '';
}
return value;
}
}]
});
答案 1 :(得分:0)
问题解决了。
下面是我的模特。
fields: [ 'Type', 'matid', 'ebomid' , 'srmid' ,'Name', 'Component_Location','Description',
'Article','Supplier_Item_Label','Supplier_Item_Description','UOM',
{ name: 'Quantity', type: 'float' },{ name: 'Wastage', type: 'float' },'Wastage_Percentage','Net_Consumption','Material_Currency','Target_Cost',
'markupInViewMode',{ name: 'Markup', type: 'float' },'markup_Percentage','Final_Material_Cost','Sourcing_Classification','Brand_Cost','Vendor_Cost','Total_Cost']
});
因此,如果我在Model中给定float / number类型,并且不传递对应列的数据,则默认值为0。
我们必须在字段中设置字段类型。 xtype : 'numberfield',