#extjs #sencha-touch-2
#extjs #sencha-touch-2
Вопрос:
У меня есть следующий код
Ext.regModel('Centre', {
fields: ['name', 'url']
});
Ext.application({
name: 'Sencha',
launch: function() {
var panel = new Ext.Panel({
fullscreen: true,
dockedItems: [
{
xtype: "toolbar",
dock: "top",
title: "DEMO APP"
},
{
xtype: "toolbar",
items: [
{
iconMask: true,
iconCls: "download"
},
{
iconMask: true,
iconCls: "favorites"
},
{
iconMask: true,
iconCls: "search"
},
{
iconMask: true,
iconCls: "user"
}
]
},
{
xtype: 'list',
itemTpl: '{name}',
sorters: 'name',
store: {
fields: ['name', 'url'],
data: centers
},
itemConfig: {
tpl: '{url}'
},
listeners: {
itemtap:function(data,index){
var record = data.getStore().getAt(index);
redirect_url = record.raw.url
// the record that has been clicked.
window.location = redirect_url
}
}
},
]
});
}
});
centers
содержит список центров. Я хочу отсортировать и сгруппировать список. Попробовал getGroupString(), но не помогло. Возможно, я чего-то не понимаю..
Ответ №1:
Ваш список должен иметь свойство config grouped:true
(// indexBar:true as well if you want the alphabet on the side)
В вашем хранилище должна быть реализована getGroupString
функция
getGroupString: function(record) { return record.get('name') }
Ответ №2:
Для всех, кто использует 2.1 , синтаксис теперь заключается в определении группового объекта с помощью функции groupFn в конфигурации:
grouper: {
groupFn: function(record) {
return record.get('name').substr(0, 1);
},
sortProperty: 'name'
}