Foro

como seleccionar el valor de un Ext.data.JsonStore

0
reciba un saludo, y agadecerle de antemano la colaboracion que presta a la comunidad, estoy tratando de cargar un combo dinamicamente, pero quiero que el mismo se inicie con un valor por defecto. este es mi json var storeComCountry = new Ext.data.JsonStore({ url :'php/response_search.php', root :'results', totalProperty:'count', baseParams :{oper :'comboCountry'}, fields :[ {name:'id', type:'string'}, {name:'country', type:'string'} ] }); storeComCountry.load(); y aqui tengo mi combo: xtype :'combo', id :'comboCountry', name :'comboCountry', mode :'local', store : storeComCountry, editable :false, allowBlank :false, hiddenName:'country', displayField:'country', valueField :'id', lastQuery: '', triggerAction:'all', selectOnFocus:true, fieldLabel:'Country', listeners :{ beforerender : function(combo){ registro = Ext.getCmp("storeComCountry").getAt(0); Ext.Msg.alert("titulo",registro.get('id')); combo.setValue(valor); } } le agradeceria mucho su ayuda
0
Hola que tal!!!! :-? estuve checando lo que decian sobre seleccionar el primer registro y nada me funciono. investige por ai y decian que poniendo en el store los siguiente: 'selected':'selected' antes de el registro a seleccionar pero no me funciono!!! :-? asi que llege a este foro y vi los comentarios y tampoco me funciono. asi q decidi hacerlo por mi cuenta. en la forma que puedo seleccionar lo de la siguiente manera: listeners:{ 'render':function(obj){ var store = obj.getStore(); store.load({ callback:function(){ var fila= obj.getStore(0).getAt(0);//selecciono primera fila obj.setValue(fila.get('id'));//ingreso el value del combo } }); }, }//fin listener bueno espero esto les sirva gracias!! B-)
0
ok muchas gracias Tokkaido, voy a probar y les aviso :)
0
mira, hice una prueba y si siempre vas a querer que se seleccione el mismo valor, digamos el primero, puedes colocar en la definición de tu combobox la propiedad: "value:1", ahora este "1" dependerá del valor de tu campo valueField, no del orden de los elementos, espero te sirva :)
0
gracias por tu respuesta Tokkaido, pero no me sirvio, no se si lo estare haciendo mal, pero coloque como me dijiste y nada :-( , no endiendo que estoy haciendo mal, cargo el JsonStore, y en el metodo beforerender del combo, quiero colocarle la primera posicion del store, pero nada!, alguna otra respuesta seria de utilidad gracias ;-)
0
primero tienes que cargar el Store, una vez que se cargue puedes asignarle al combo un valor con el método "setValue". Saludos
0
gracias por tu respuesta, pero todavía quede con duda, yo estoy cargando el JsonStore, si puedes colocarme algun ejemplo funcional le agradaceria :)
0
para el combo tienes 2 métodos que puedes usar: "select()" y "selectByValue()", al primero debes pasarle el index del elemento de la lista que quieres que se seleccione y el segundo necesita el valor, para asignárselos podrías crear un listener al evento load del store, creo, porque como es asincronico podría no estar cargado en el combo si lo haces con un listener desde tu combo. puedo estar equivocado pero creo que esto: registro = Ext.getCmp("storeComCountry").getAt(0); no puedes hacerlo asi, podrías hacerlo de una de estas 3 maneras: como estas dentro del listener del combo, podrias usar combo.getStore().getAt(0); o Ext,getCmp('comboCountry').getStore().getAt(0); o si el asignas un storeId a tu store, por ejemplo: storeId: 'storeComCountry', podrias usar Ext.StoreMgr.lookup('storeComCountry').getAt(0); espero te sirva :) .

¿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.