Comunidad de diseño web y desarrollo en internet online

Problemas con selectedItem del componente List

Citar            
MensajeEscrito el 01 May 2009 06:21 pm
Muy buenas a tod@s!
Llevo días teniendo unos problemillas con el componente List y no entiendo pq no me funciona bien.
He creado un cuadro de dialogo en el cual voy añadiendo archivos del disco duro, tal y como aparece en la siguiente foto:



El control que contiene los nombres de los archivos cargados es un componente List. El problema me surge cuando selecciono un item y pulso el boton "Del" de la imagen para eliminar ese archivo de la lista. En ocasiones me funciona todo correcto y el elemento se borra de la lista pero en otras ocasiones me genera el siguiente error:



Aqui les adjunto el codigo:

Código :

private var lista:List = new List();

lista.dataProvider = ficheros;
lista.width = 180;
lista.height = 180;
lista.setStyle("themeColor", "#60FF00");

bDel.label = "Del";
bDel.setStyle("icon", ButtonDel);
bDel.addEventListener(MouseEvent.CLICK, quitarArchivo);

private function quitarArchivo(evt:Event):void{
   for(var i:int=0; i<ficheros.length; i++){
      if(lista.selectedItem.toString() == ficheros[i]){
         ficheros.splice(i, 1); //Eliminamos el objeto en la posicion i
         refrescarLista(); //Recarga el dataProvider sin el elemento eliminado
      }
   }
   
}


He intentado ponerle eventos a la lista, crear objetos a parte para sacar unicamente el nombre del archivo... de todo! porque he encontrado diversas formas por internet, pero no he sido capaz de dar con una manera correcta de hacerlo, y estoy segura de que es una tonteria...!!

En fin... Si alguien sabe como puedo hacerlo, dónde esta el error para que a veces funcione y otras no se lo agradeceria enormemente.

Muchas gracias!

Por Kárites

25 de clabLevel



 

msie7
Citar            
MensajeEscrito el 04 May 2009 11:51 am
El problema lo tienes con esta sentencia:

lista.selectedItem.toString()

ya que creo que no devuelve el objeto seleccionado, sino el tipo de objeto, con un trace podras ve que el valor de eso es:

[object Object]

Por juanxo

7 de clabLevel



 

firefox
Citar            
MensajeEscrito el 05 May 2009 04:22 pm
gracias x la ayuda!
Al final conseguí resolverlo con ayuda de otro post del foro y algo de imaginacion... La cosa ha quedado asi:

Código :

private var seleccion:String = "";

lista.addEventListener(ListEvent.CHANGE, seleccionar);

private function seleccionar(event:ListEvent):void{
   var itemSelect:Object = new Object;
   
   itemSelect = List(event.target).selectedItem;
   seleccion = itemSelect.toString();
}

private function quitarArchivo(evt:Event):void{
   for(var i:int=0; i<ficheros.length; i++){
      if(seleccion == ficheros[i])
         ficheros.splice(i, 1); //Eliminamos el objeto en la posicion i
                }
}


Ahí queda para quien tb tenga problemillas
Saludos!

Por Kárites

25 de clabLevel



 

msie7

 

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