2011-04-15 10 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から答えを受け入れるべき助ける

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

希望は、それがシムです私よりもpler、同じように動作するように見えます。 –

+0

この回答はあまりにも複雑です。 OP、@Dashaの回答 – alexandre1985

10

何getRawValue方法について? ExtJSの4では

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

を確認してくださいこれが答えです – alexandre1985

0

ビルトインBigSeanは、あなたがすべてのそのコードを記述する必要はありませんので、上記に提案することを探してんfindRecord()方法がある:


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:あなたは

関連する問題