Javascript-форум (https://javascript.ru/forum/)
-   ExtJS (https://javascript.ru/forum/extjs/)
-   -   Форматирование данных на выходе в DisplayField (https://javascript.ru/forum/extjs/15385-formatirovanie-dannykh-na-vykhode-v-displayfield.html)

astral_sight 24.02.2011 15:08

Форматирование данных на выходе в DisplayField
 
Добрый день!

Столкнулся с такой проблемой. Необходимо форматировать данные на выходе в DisplayField'е. Например, мне необходимо в одном из полей с числовым значением применить функцию разделения разрядов числа пробелами. Как это можно осуществить? Через Template? Поясните плиз...

VKS 25.02.2011 16:04

Ext.extend(Ext.ux.plugins.MyCombo, Ext.util.Observable, {
    init:function(combo) {
        Ext.apply(combo, {
            tpl:  '<tpl for=".">'{' + this.myRenderFunction() + '}'</tpl>',

            myRenderFunction: function() {

// Тут ваш функционал

                return myFormattedValue;
            }, // end of function setIconCls
        });
    } // end of function init
}); // end of extend


ну и в самом комбо

plugins	: new Ext.ux.plugins.MyCombo(),


Можно это решить как то так

astral_sight 01.03.2011 13:04

Спасиб! Сейчас попробуем! ;)

astral_sight 01.03.2011 13:31

Есть 2 проблемы:

1. Насколько я понимаю строка "tpl: '<tpl for=".">'{' + this.myRenderFunction() + '}'</tpl>'," должна выглядеть как "tpl: '<tpl for=".">' + this.myRenderFunction() + '</tpl>'"

2. При загрузке страницы Файрбаг выводит: K is undefined

astral_sight 01.03.2011 13:40

Даже при загрузке строки:
Ext.extend(Ext.ux.plugins.MyCombo, Ext.util.Observable, {});

Выводится ошибка

astral_sight 01.03.2011 13:51

Часть проблемы решил путем обозначения:
Ext.ux.plugins.MyCombo = function(config) {
    Ext.apply(this, config);
};

astral_sight 01.03.2011 14:08

В общем, в конце концов код не выдаёт ошибок работает в таком виде:
Ext.extend(Ext.ux.plugins.MyCombo, Ext.util.Observable, {
     myRenderFunction: function() {
 
                return 'test';
            }, // end of function setIconCls
	init:function(combo) {
        Ext.apply(combo, {
           
			tpl:  '<tpl for=".">' + this.myRenderFunction() + '</tpl>'
        });
    } // end of function init
}); // end of extend

Но значение не меняется


Часовой пояс GMT +3, время: 17:38.