2016-09-01 2 views
0

У меня есть combobox, который заполняет список стран, как определено ниже. Однако, когда я загружаю combobox, записи заполняются на основе их порядка в базе данных. Я хотел бы, чтобы combobox загружался в алфавитном порядке. Может ли кто-нибудь помочь, как я могу сортировать хранилище данных?ExtJS 5.0.1 сортировать хранилище данных

магазин Определение

Tool.model.Base.defineModel(
    'Country', 
    [{name: 'name', type: 'string'}, 
    {name: 'code', type: 'string'}, 
    ], 
    true 
); 

выпадающий Код

{ 
xtype: 'combobox', 
labelAlign: 'top', 
fieldLabel: 'Country', 
id: 'CountrySelectField', 
name: 'country_id', 
store: 'Country', 
displayField: 'name', 
valueField: 'id', 
width: 300, 
allowBlank:false, 
} 
+0

Ваше "определение магазин" не определяет магазин. Пожалуйста, сделайте рабочий пример в [Sencha fiddle] (https://fiddle.sencha.com/). – Alexander

ответ

1

Вы должны добавить сортировщик в магазин, либо в процессе определения:

sorters:[{ 
    property:'name', 
    direction:'ASC' 
}] 

или во время выполнения :

store.sort({ 
    property:'name', 
    direction:'ASC' 
}) 
+0

Здравствуйте, Александр, я попытался использовать сортировщики, как вы упомянули выше (добавление в магазин), но я продолжаю получать синтаксические ошибки. Можете ли вы применить его к моей конфигурации выше, и я могу дать ему шанс? – Jukebox

1
var countries = Ext.create('Ext.data.Store', { 
    fields: ['country', 'code'], 
    data : [ 
     {"country":"USA", "code":"USA"}, 
     {"country":"Belgium", "code":"BEL"}, 
     {"country":"Bosnia", "code":"BOS"}, 
     {"country":"Uruguay", "code":"URU"}, 
     {"country":"Denmark", "code":"DEN"}, 
     {"country":"Canada", "code":"CAN"} 
     //... 
    ], 
    sorters:[{ 
    property:'country', 
    direction:'ASC' 
}] 
}); 

Ext.create('Ext.form.ComboBox', { 
    fieldLabel: 'Country', 
    store: countries, 
    queryMode: 'local', 
    displayField: 'country', 
    valueField: 'code', 
    renderTo: Ext.getBody() 
}); 

https://fiddle.sencha.com/#fiddle/1g69

+0

Может быть, вы должны добавить небольшую аннотацию к вашему коду – YakovL

+0

Прошу прощения, если это показалось немного сухим кодом и просто скрипкой, это пример сортировщиков в действии, как и Александр. Однако это использование локальных данных, в конце концов попробуйте добавить сортировщик в свой магазин. Это дает вам желаемый результат Jukebox? – JeroenDR

+0

Спасибо JeroenDR - Я пытаюсь применить сортировщики к моему магазину, но он всегда возвращает синтаксическую ошибку. Вы знаете, как применять сортировщики, как вы определили в моем магазине выше? Мой магазин заполняется через базу данных, а не статические локальные данные. – Jukebox

Смежные вопросы