Ext Record 如何对 float 保留2小数位

定义了如下的Record
Ext.data.Record.create(
[{name:'INDICATION_VALUE',type:'float'},
{name:'INDICATION_FULLNAME',type:'string'}]
)

从后台取值,得到的'INDICATION_VALUE' 小数位有6位,而在前台展示时仅需要2位小数

请帮忙看如何修改Record,使得效果符合需求

formatDouble函数名称 命名不是很好。适当修改下

[code="javascript"]
alert( (5/3).toFixed(2) );
[/code]
.toFixed(2)就可以保留2小数

[quote]toFixed(2)如何在Record中定义?我的数据是后台直接去过来的。。[/quote]

我的意思是在展现的时候,用 toFixed(2) 保留2小数。

在extjs gridpanel中添加colModel属性.
[code="java"]colModel: new Ext.grid.ColumnModel({
defaults: {
sortable: true
},
columns: [
{header: "价格", dataIndex: 'price',width: 150,
renderer:formatDouble }
]
}),[/code]

在gridpanel定义的 同一级别位置处。定义函数
[code="java"]function formatDouble (val){
return val.toFixed(2);
}[/code]

这样用行不行?
[code="javascript"]
var mmyStore = new Ext.data.Store({
proxy : new Ext.data.HttpProxy({url: saveDataURL}),
autoLoad: false,
fields: showColumnRecord,
reader: new Ext.data.JsonReader({
root: 'selectInfo',
totalProperty: 'recordNum',
successProperty :'success' ,
fields: [
{name: "INDICATION_VALUE", convert:function(v){
return v.toFixed(2);
}},
{name:'INDICATION_FULLNAME'}
]
},showColumnRecord),
params:{start:0, limit:100,timeType:timeType}
});
[/code]

ColumnModel的columns属性
header:"",里面放自定义名称
dataIndex:"", 这里面的值应该来源于Ext.data.Store的fields属性保持一致。也就是你代码里面的fields: showColumnRecord,

renderer:后面放的是 显示数据的时候调用的函数

两种方法
1在renderer时处理
[code="java"]
{
header:'INDICATION_VALUE',
renderer:function(v){
return v.toFixed(2);
}
}
[/code]

2在convert时处理
[code="java"]
Ext.data.Record.create([{
name : 'INDICATION_VALUE',
type : 'float',
convert : function(v, record) {
if(Ext.isNumber(record.INDICATION_VALUE)){
return record.INDICATION_VALUE.toFixed(2);
}
return record.INDICATION_VALUE;
}
}, {
name : 'INDICATION_FULLNAME',
type : 'string'
}])
[/code]