如何在ExtJS 3.4 ComboBox中获取所选displayField的值? getValue()返回valueField,但我需要其他。
答案 0 :(得分:16)
combo.getValue() - > valueField
combo.getRawValue() - > displayField
答案 1 :(得分:6)
如果是这种情况,
displayField : 'countryName',
valueField : 'countryId',
然后跟随函数提供所需的displayFiled(存储中甚至超过1个字段,你也可以得到它们)
function getFieldValues(combo, nameIn, nameOut){
try{
var r = combo.getStore().find(nameIn,combo.getValue());
return combo.getStore().getAt(r).get(nameOut);
}
catch(err){
return'error';
}
}
获取显示字段或存储中的任何其他字段的方法:
var item = getFieldValues(Ext.getCmp('combo'), 'countryId', 'countryName');
答案 2 :(得分:0)
也许你只是用户store.filter(),对吗?如果是这样,尝试清除过滤器并再次加载,如下所示:
onProvinceSelected: function (com,record,index)
{
var provinceCode = com.getValue();
var postGrid = this.lookupReference('postgrid');
if (provinceCode != 0) {
postGrid.store.filter('ProvinceCode', provinceCode);
} else {
postGrid.store.filters.clear();
postGrid.getStore().load();
}
}
答案 3 :(得分:0)
我正在使用ComboBox的lastSelectionText属性;对我来说很好,但它是一个没有记录的功能,因此可能随时中断......
Ext.override(Ext.form.ComboBox,
{
getDisplayValue: function () {
return this.lastSelectionText;
}
});