PDA

View Full Version : Gridcell Format from Array not from DB



DetBerlin
8 Oct 2013, 5:09 AM
so.....

und wieder ein problem....
geht eigendlich irgend etwas auf anhieb ohne probleme?

nu hier mein problem...

ich möchte die celle " hptpreis " formatieren ins deutsche Zahlenformat
die daten kommen aus einem array und nicht aus der datennbank.
bei daten aus der datenbank geht mein formatbefehl

hier mein code




var warenkorbDaten = {warenkorbGridData:[{btdelete:'1', btzuruck:'2', hpttexte:'Artikel Test 1', hptpreis:4, hptmwst1:'5', hptmwst2:'6', hptgroup:'7', hptmenge:'8'}]};

var hptWarenStore = Ext.create('Ext.data.Store', {autoLoad:true, fields:[

{name:'btdelete', type:'number'},
{name:'btzuruck', type:'number'},
{name:'hpttexte', type:'string'},
{name:'hptpreis', type:'number'},
{name:'hptmwst1', type:'number'},
{name:'hptmwst2', type:'number'},
{name:'hptgroup', type:'number'},
{name:'hptmenge', type:'number'}

],

data:warenkorbDaten, proxy:{type:'memory', reader:{type:'json', root:'warenkorbGridData'}}});

warenGrid = Ext.create('Ext.grid.Panel',{
id:'51',
cls:'wbGrids02',
x:1104,
y:213,
width:352,
height:646,
store:hptWarenStore,
hideHeaders:true,
rowLines:true,
columnLines:true,
border:false,
viewConfig:{trackOver:false, preserveScrollOnRefresh:true, loadMask:false},
defaults:{flex:1,overflowX:'hidden',overflowY:'scroll'},
renderTo:'startcontainer',

columns:[
{width: 26, dataIndex:'btdelete'},
{width: 26, dataIndex:'btzuruck'},
{width:208, dataIndex:'hpttexte'},
{flex: 1, dataIndex:'hptpreis', align:'right', renderer:Ext.util.Format.numberRenderer('#,##0.00')},
{hidden:true, dataIndex:'hptmwst1'},
{hidden:true, dataIndex:'hptmwst2'},
{hidden:true, dataIndex:'hptgroup'},
{hidden:true, dataIndex:'hptmenge'}]});

warenGrid.getEl().dom.style.border = 'solid 1px #7f9db9';
warenGrid.getEl().dom.style.position = 'absolute';



vieleicht hat ja jemand von euch ne lösung?

Farish
8 Oct 2013, 5:44 AM
eine einfache Lösung wäre die Locale-Datei laden.


Ext.Ajax.request({
url: 'extjs/locale/ext-lang-de.js',
success: function(resp, opts){ eval(resp.responseText);},
failure: function() { }
});

drin ist diese Code:


if(Ext.util.Format){
Ext.util.Format.__number = Ext.util.Format.number;
Ext.util.Format.number = function(v, format) {
return Ext.util.Format.__number(v, format || "0.000,00/i");
};

Ext.apply(Ext.util.Format, {
thousandSeparator: '.',
decimalSeparator: ',',
currencySign: '\u20ac', // German Euro
dateFormat: 'd.m.Y'
});
}

DetBerlin
11 Oct 2013, 9:35 AM
leider funktioniert deine lösung nicht bei mir....

wie könnte ich es noch hinbekommen?

DetBerlin
11 Oct 2013, 11:58 AM
Sorry Fehler gefunden lag nicht an deiner routine ....