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

Tim 20.08.2012 11:02

Форматирование данных
 
Как отформатировать данные прямо в хранилище. Для таблиц есть renderer, но мне нужно их использовать в комбобоксе. Т.е. у мея есть поля id и created. created - это время в секундах. Мне нужно получить в оптионах что то вроде: Запись № 1 [22.05.12].
Делаю так:
listConfig: {itemTpl: 'Запись № {id} - <font color="#777777">[{created}]</font>'},

Нужно ещё как то отформатировать created

Ex_Soft 20.08.2012 14:10

var
		store = Ext.create("Ext.data.ArrayStore", {
			fields: [
				{ name: "id", type: "int" },
				{ name: "value", type: "date", dateFormat: "c" }
			],
			proxy: {
				type: "memory",
				reader: {
					type: "array"
				}
			},
			data: [
				[ 1, "2012-04-19T14:55:13.123" ],
				[ 2, "2012-04-19T11:55:13.123Z" ],
				[ 3, "2012-04-20T19:00:00.000" ],
				[ 4, "2012-04-20T19:00:00.000Z" ]
			]
		});

	Ext.create("Ext.form.field.ComboBox", {
		store: store,
		valueField: "id",
		displayField: "value",
		queryMode: "local",
		editable: false,
		listConfig: {
			tpl: new Ext.XTemplate("<ul><tpl for=\".\"><li role=\"option\" class=\"" + Ext.baseCSSPrefix + "boundlist-item" + "\"><div>{value:date(\"d.m.Y\")}</div></li></tpl></ul>")
		},
		renderTo: Ext.getBody()
	});

Tim 20.08.2012 15:59

[{created:date("d.m.Y")}]

так работает, только у меня дата в виде числа секунд, поэтому NaN.NaN.NaN

Ex_Soft 20.08.2012 16:13

Цитата:

Сообщение от Tim (Сообщение 199062)
только у меня дата в виде числа секунд

tpl: new Ext.XTemplate("<ul><tpl for=\".\"><li role=\"option\" class=\"" + Ext.baseCSSPrefix + "boundlist-item" + "\"><div>{[Ext.Date.format(new Date(values.created*1000), \"d.m.Y\")]}</div></li></tpl></ul>")

Tim 20.08.2012 17:11

Ex_Soft,
круто, спасибо!


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