У меня есть поле со списком, который заполняется списком адресов:
this.entityAddressField = new Ext.form.ComboBox(
{
id: 'entityAddressField',
fieldLabel: 'Address',
store: entityAddressStore,
mode: 'local',
width: 250,
valueField: 'entity_address_id',
displayField: 'address_type',
tpl: new Ext.XTemplate(
'<tpl for="."><div class="search-item">',
'<p><b>{address_type}</b></p>',
'<p>{address_1}</p>',
'<p>{address_2}</p>',
'<p>{city}, {state_code} {zipcode}</p>',
'</div></tpl>'
),
itemSelector: 'div.search-item',
hidden: true,
triggerAction: 'all',
listeners: {
select: function(combo, record, index) {
me.entityAddressDisplay.update(address_template.apply(record.data));
me.entityAddressDisplay.show();
}
}
});
При раскрытии в списке отображается полный адрес, но после выбора в поле со списком отображается только displayField, который является типом адреса (Дом, работа и т. Д.).
В случае, если указаны два «Домашних» адреса (одного и того же типа, но разных адресов), если я изменю комбинированный список с одного «Домашнего» адреса на другой - вызов:
this.entityAddressField.getValue();
будет возвращать entity_address_id первоначально выбранного элемента вместо вновь выбранного.
Есть ли мне неизвестные правила, которые запрещают комбинированному списку иметь две записи с одинаковым набором displayField, хотя valueField между ними уникален?
Или я что-то пропустил?