2011-04-15 21 views

Respuesta

1

Usa el valor para sacar el registro de la tienda y obtener el valor de visualización desde allí.

En abstracto, puede utilizar este código, pero es posible sustituir algunas de las variables para los valores conocidos para que sea más legible:

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 debe aceptar la respuesta de @Dasha_Salo, es sim más pragmático que el mío, y parece funcionar de la misma manera. –

+0

esta respuesta es demasiado complicada. OP, por favor marque @Dasha respuesta – alexandre1985

10

¿Qué pasa con el método getRawValue?

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

esta es la respuesta – alexandre1985

0

En ExtJS 4 hay un built-in findRecord() método que hace la búsqueda que BigSean sugirió anteriormente, por lo que no tiene que escribir todo ese código:


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

una solución fácil que worket para mí:

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

esperanza que le ayudan a

Cuestiones relacionadas