Comunidad de diseño web y desarrollo en internet online

combobox + seleccionar un item

Citar            
MensajeEscrito el 16 Mar 2006 08:42 pm
hola soy re nuevo en este lenguaje y quisiera preguntarles como seleccionar un item de un combobox una vez que este este cargado, resulta que el combo esta cargado con un array y este tiene ciudades cargadas , pero cuando un usuario entra yi ya se de que ciudad es y quiero seleccionar en el combo su ciudad

ya probe con combo.selectedIndex=4 por ejemplo

pero no me lo selecciona desearia que me ayuden

gracias

Por roque_ing

1 de clabLevel



 

msie
Citar            
MensajeEscrito el 16 Mar 2006 10:20 pm
Hola, lo que yo hago en esos casos es agergar un item más al inicio con la opción correspondiente y luego le doy foco así:

Código :

// Agrego una opción más
cboCliente.addItemAt(0, result [0][1], result [0][9]);
//le doy foco
cboCliente.selectedIndex = 0;


Saludos

Por micheloud

341 de clabLevel



 

Misiones, Argentina

firefox
Citar            
MensajeEscrito el 06 Ago 2007 10:30 am
Hola, soy nuevo en este foro que por cierto desde que he empezado (soy un primerizo) me ha sido muy útil.
Creo que tengo una solución que puede ayudar a mas de uno. Si existe una solución que no sea "Homemade" con algun método de la clase ComboBox ruego que alguien me lo comunique.

Aqui van unos metodos y un ejemplo de uso de como yo he solucionado el tema de seleccionar un Item de un ComboBox por un nombre:

METODOS:

/**
* Selecciona el Item del ComboBox "combo" que tenga por Label "name"
* Si no hay ningun Item con nombre "name" deja el ComboBox igual
*/

function setComboBoxItem(combo:ComboBox, name:String){
var index = getComboBoxIndex(combo, name);
// Si ha encontrado un Item con nombre "name" lo seleccionamos
if(index != -1) combo.selectedIndex = index;
}

/**
* Devuelve el Index del Item del ComboBox que tiene por nombre "name"
* Devuelve -1 si no ha encontrado un Item con nombre "name"
*/

function getComboBoxIndex(combo:ComboBox, name:String):Number{
// Si no lo encuentra lanzamos -1 (Error)
var index:Number = -1;
// Recorrer elementos del ComboBox
for(var i=0; i<combo.length; i++){
combo.selectedIndex = i;
var item = combo.getSelectedItem().label;
// Si el Label del Item es igual a "name" guardamos el Index
if(item == name) index = i;
}

return index;
}

EJEMPLO DE USO:

1 )
// Esto seleccionara el Item "nombrePorSeleccionar" del combo myCombo
// como veis solo requiere por parametros el ComboBox i un String
setComboBoxItem(miCombo, "nombrePorSeleccionar");

2 )
// Esto devuelve el Index del Item del ComboBox que tiene por label "nombreItem"
getComboBoxIndex(miCombo, "nombreItem");


Espero que fuera lo que necesitabas y sea en general útil. Me gustaría que respondierais que os parece.

Un saludo a todos! ^^

Por puck

1 de clabLevel



Genero:Masculino  

firefox
Citar            
MensajeEscrito el 06 Ago 2007 11:02 am
Hola a todos, he enviado este post con un error. Si se fijan, si "name" no es un parametro dentro de ComboBox hay un error. Deben cambiar la funcion setComboBoxItem por el nuevo codigo que les envio:

nuevo setComboBoxItem(..,..):

/**
* Selecciona el Item del ComboBox "combo" que tenga por Label "name"
* Si no hay ningun Item con nombre "name" deja el ComboBox igual
*/

function setComboBoxItem(combo:ComboBox, name:String){
// Guardar antiguo Indice ya que getComboBoxIndex(_,_) lo cambiará
var oldIndex = combo.getSelectedIndex();
var index = getComboBoxIndex(combo, name);
// Si ha encontrado un Item con nombre "name" lo seleccionamos
if(index != -1) combo.selectedIndex = index;
// Si no lo ha encontrado volvemos a seleccionar el antiguo Item
else combo.selectedIndex = oldIndex;
}

Perdon por el despiste, que os sea de utilidad! El uso es el mismo que el anterior.

Saludos!

Por puck

1 de clabLevel



Genero:Masculino  

firefox
Citar            
MensajeEscrito el 26 May 2009 02:51 pm
Yo tengo otra solucion, la verdad es basada en la anterior, con la diferencia que se envía un objeto a la funcion.

Esta solucion obtiene el combo de un canvas que se ha enviado a otra funcion en AS3 desde Flex, me explico:

desde flex, enviamos un canvas a una funcion, este canvas tendrá los correspondientes comboBox que queremos ubicar; por ejemplo :

desde flex este sería el canvas que se envía a la funcion (No creo que sea necesario especificar desde donde se envía el canvas ya que puede ser desde cualquier parte):

Código :

<mx:Canvas height="63" right="10" left="10" top="530" borderStyle="solid" id="ubi_qlla">
        <mx:Label text="Comuna" left="10" top="12"/>
   <mx:Label text="- Para seleccionar un barrio primero seleccione la comuna correspondiente." fontWeight="bold" fontStyle="italic" color="#C9022C" left="1" top="41"/>
   <mx:ComboBox id="com0" left="120" top="10"></mx:ComboBox>
</mx:Canvas>


En resumidas cuentas la funcion que recibe sería algo como:

Código :

public function recibe_canvas(obj:Canvas):void{
       var combo:ComboBox = new ComboBox();//Creamos una instancia para recibir nuestro objeto ComboBox
       combo = obj.getChildByName("com0");//Obtenemos el combo que es enviado con el canvas (se obtiene como un Object)
       var id:int = new int(2);//este es el id que queremos ubicar en el combo (Este id por ejemplo puede ser sacado de la BD)
       var index:int = traer_index(id,combo);
       if(index!=-1)
                obj.getChildByName("com0")["selectedIndex"] = index;//Ubicamos la lista en el index correcto
       else
                obj.getChildByName("com0")["selectedIndex"] = 0;//Ubicamos la lista en la primera posicion por defecto
}
public function traer_index(data:int, combo:Object):int{
        var index:Number = -1;// Si no lo encuentra lanzamos -1 (Error)
   var item:int = new int();
   for(var i:int=0; i<combo["dataProvider"]["length"]; i++){// Recorrer elementos del ComboBox
      combo["selectedIndex"] = i;//De esta forma me ubico en cada posicion del dataProvider
      item = combo["selectedItem"]["data"];
      if(item == data) index = i;// Si el Label del Item es igual a "name" guardamos el Index
   }
   return index;
}

Por ingjuanfelipe

12 de clabLevel



 

Villavicencio

chrome

 

Cristalab BabyBlue v4 + V4 © 2011 Cristalab
Powered by ClabEngines v4, HTML5, love and ponies.