Asignar un valor a un combo
Hola buen día, pues eso. Cuando el usuario selecciona un registro de un grid, y presiona un botón que dice "Detalle", abro una ventana donde se muestran todos los datos del registro que seleccionó. En dicha ventana hay unos combobox y quiero que aparezca seleccionado el valor que viene de la BD. Para los cuadros de texto uso lo siguiente:
this.Base.getForm().findField("txtNombreAlu").setValue(loadedGrid.grid.getSelectionModel().getSelected().get('nombre_alumno')) ;
this.Base es un FormPanel
loadedGrid on este objeto voy obteniendo lo que hay en el registro seleccionado.
Esa instrucción para cuadros de texto funciona bien. Para el combo puse:
this.Base.getForm().findField("cboSexoAlu").setValue(loadedGrid.grid.getSelectionModel().getSelected().get('id_sexo')) ;
y no pone nada en el combo, ya vi que "oadedGrid.grid.getSelectionModel().getSelected().get('id_sexo')" si trae valor.
Qué estoy haciendo mal?
mira el combo se configura de manera diferente, necesita regularmente un store de donde sacar los datos a mostrar, asi que puedes empezar por ahi, el valor que quieres poner debe coincidir con el display value de tu combo lo mas seguro es que si estes poniendo el valor pero no se muestra debido a esto que te comente anteriormente,
lo soluciones son [b]setRawValue [/b]en vez de [b]setValue[/b]
Hola manduks, gracias por la respuesta.
Los combos los tengo cargados con un store, algunos con información de la BD, y otros con Arreglos simples, como por ejemplo : Masculino, Femenino.
Hice lo que me comentaste, es decir usé setRawValue, sin embargo lo que hace es ponerme el ID en el combo, es decir, me pone un 1 por ejemplo, en vez de mostrarme el texto correspodiente al ID=1.
Por ahora no tengo la aplicación a la mano, si se requiere al rato pongo un ejemplo de store de los combos y coom estoy haciendo la asignación.
Saludos
Lo mas seguro es que cuando haces la asignacion el store todavia no esta cargado completamente y por eso no te esta poniendo el texto, es eso o el valor que le estas queriendo asignar no existe en los registros del combos.
Saludos
Hola buen día.
Ya chequé y el valor si existe en el store, ahora, puede ser que sea eso de que el Store aún no esté cargado, cómo hago eso? La asignación la estoy haciendo después de hacer el Render. Estoy viendo que hasta cuando le doy clic en el combo es cuando hace la consulta del Store. Cómo lo hago para que se haga desde que se cargue la página?
Aqui pongo la configuración de un combo, que es similar en todos:
xtype: 'combo',
fieldLabel: 'Si es de origen indígena,seleccione cual',
anchor: '100%',
name : 'id_enia',
id : 'id_enia',
width : '',
hiddenName : 'id_etnia',
store : storeEtnias,
displayField : 'd_etnia',
valueField : 'id_etnia',
triggerAction : 'all',
emptyText : 'Selecciona una etnia...',
selectOnFocus : true,
allowBlank : true,
helpText : 'Etnia del Alumno',
editable : false
Saludos y Gracias
en el manual dice que setValue tienes que asignar uno de los valores del display, no el identificador.
Hola tierrarara, no entiendo lo que me comentas. Me puedes amplicar la explicación? es decir, a qué te refieres con lo de setValue, me comentaste en mensajes anteriores que para el combo es con setRawValue.
Saludos y Gracias
<!-- m -->http://www.extjs.com/deploy/ext/docs/<!-- m -->
en el campo de find class, coloca "combo"
y selecciona la opcion combobox que aparecera y veras todas las funciones y propiedades de ese componenete, seguro se aclararan mejor tus dudas
¿Conoces a alguien que pueda responder esta pregunta? Comparte el link en Twitter o Facebook
Es necesario registrarse para poder participar en el foro! Si ya tienes una cuenta puedes entrar y comentar en este foro.