2011-04-15 126 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); 
} 

希望幫助您