【发布时间】:2011-04-19 17:35:39
【问题描述】:
我有一个包含地址列表的组合框:
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 是唯一的?
还是我错过了什么?
【问题讨论】:
标签: javascript extjs