2011-04-15 116 views

回答

1

使用该值将记录从商店中取出,并从此处获取显示值。

抽象地,你可以使用此代码,但你可以替代一些变量的已知值,以使其更易于阅读:

getComboDisplay = function(combo) { 
    var value = combo.getValue(); 
    var valueField = combo.valueField; 
    var record; 
    combo.getStore().each(function(r){ 
     if(r.data[valueField] == value){ 
      record = r; 
      return false; 
     } 
    }); 

    return record ? record.get(combo.displayField) : null; 
} 
+1

OP应该接受来自@Dasha_Salo答案,这是SIM卡比我的更细,而且看起来也是一样的。 – 2014-12-16 18:14:51

+0

这个答案太复杂了。 OP,请检查@Dasha回答 – alexandre1985 2016-12-14 17:13:05

10

什么getRawValue方法?

Ext.getCmp('combo').getRawValue(); 
0

在ExtJS的4有一个内置的findRecord()方法,做了搜索这BigSean上述建议,这样你就不必写所有的代码:


Ext.override(Ext.form.field.ComboBox, { 
    getDisplayedValue: function() {  // getDisplayValue() already exists but is a private method 
     var me = this, 
      value = me.value, 
      record = null; 
     if(value) { 
      record = me.getStore().findRecord(me.valueField, value); 
     } 
     if(record) { 
      return record.get(me.displayField); 
     } 
     return null; 
    } 
}); 
1

一个简单的解决方案, worket对我来说:

comboselect: function (combo,record) { 
    alert(combo.rawValue); 
} 

希望帮助您