extjs grid 中显示金额时使用金额单位
在实际的grid 的应用中,有时候金额会很大,看起来不直观,需要显示成以万、百万、亿为单位,重新制作一个renderer,使其可以完成这个需求。
Ext.onReady(function() { // 可以制作一个控件,来修改这二个属性,达到可以修改金额单位的目的 Ext.monetary = '万'; // 加在数字后面的金额单位 Ext.monetaryUnit = 10000; // Ext.monetary = '亿'; // Ext.monetaryUnit = 10000*10000; if (Ext.util && Ext.util.Format) { Ext.apply(Ext.util.Format, { monetary : function(val) { if (val) { if (Ext.monetaryUnit && Ext.monetaryUnit != 1) val = val / Ext.monetaryUnit; // 正数用蓝色显示,负数用红色显示 return '<span style="color:' + (val > 0 ? 'blue' : 'red') + ';">' + Ext.util.Format.number(val, '0,000.00') + Ext.monetary + '</span>'; } else return ''; // 如果为0,则不显示 } }) }; });
在grid中定义columns时,加入如下:
{ text : 'Price', width : 95, sortable : true, renderer : Ext.util.Format.monetary, // formatter : 'monetary', //这种方法也可以 dataIndex : 'price', align : 'right' }
具体结果: