2011-03-26 12 views
5

Al crear una GXT SimpleComboBox (como en la respuesta aceptada here),GXT (Ext GWT) problema SimpleComboBox

final FormPanel fp = new FormPanel(); 

    SimpleComboBox<String> combo = new SimpleComboBox<String>(); 
    combo.add("One"); 
    combo.add("Two"); 
    combo.add("Three"); 
    combo.setSimpleValue("Two"); // I'd like to preselect that value 

    fp.add(combo); 
    RootPanel.get().add(fp); 

mi cuadro combinado sólo contiene el valor "Dos". Los valores "Uno" y "Tres" se eliminan por completo del cuadro combinado. Esto no ocurre, cuando elimino la línea combo.setSimpleValue("Two");

Estoy usando GXT 2.2.3 y GWT 2.2.0 (probado en Linux/Firefox y Linux/Chrome). ¿Es esto un error/funcionó en versiones anteriores de GXT/GWT, o estoy haciendo algo mal?

actualización

acepté una respuesta, y se resuelve el problema: Agregue la línea

combo.setTriggerAction(TriggerAction.ALL); 

pero todavía estoy en busca de una explicación!

Respuesta

4

¿Has intentado visitar aquí? SimpleComboBox Problem in GWT

+0

Gracias por la respuesta. El hilo del foro enlazado ayudó a resolver el problema (inserte 'combo.setTriggerAction (TriggerAction.ALL);'), pero * no me ayudó a entender *, por qué tengo que hacer esto, o por qué el comportamiento anterior era incorrecto. ¿Por qué 'setSimpleValue' eliminar los otros valores? No tiene ningún sentido para mí. –

+0

No tiene sentido, pero eso es lo que hace. He experimentado este problema también. –

0

es probable que necesite para establecer combo.setForceSelection(true);

8

supongo que esto es causado por la función de filtrado del cuadro combinado. Esto funciona al verificar la entrada de cadena e intenta hacerla coincidir con los valores en su tienda; luego solo muestra aquellos elementos que cree que son relevantes para la entrada de cadena.

Como ha hecho "dos" el valor predeterminado, cree que alguien escribió "dos" allí y trata de ayudarlo mostrando solo los valores que podía pensar al escribir "dos".

+0

¡Por supuesto! Finalmente una explicación que tiene sentido. Gracias. –