¿Quieres registrarte?

Mostrar DataTips de ComboBox en Flex

9 de Enero del 2010

Los que hemos trabajado en Flex, ya sea con Listas o ComboBox hemos visto que algunas veces las etiquetas de cada item rebasan el tamaño del control provocando que esta no se vea por completo, para control List podemos resolver eso fácilmente poniendo en true la propiedad showDataTips, sin embargo para el ComboBox no hay algo tan directo como esto.

La solución es crear un dropdownFactory, con esto creamos una nueva instancia del control List (pues el control que aparece en el drop down del ComboBox es un List) y podrémos modificar las propiedades que necesitemos, para este caso, que muestre dataTips y especificar quien será el dataTip o bien, crear una función para que sea la que despliegue la información.

El código en AS3 quedaría así:

Código :

private var ddf:ClassFactory
private var dp_ac:ArrayCollection = new ArrayCollection([
   {etiqueta: "Texto un poco laaaaaargo"},
   {etiqueta: "Texto un poco laaaaaargo"},
   {etiqueta: "Texto un poco laaaaaargo"},
   {etiqueta: "Texto un poco laaaaaargo"},
   {etiqueta: "Texto un poco laaaaaargo"},
   {etiqueta: "Texto un poco laaaaaargo"},
   {etiqueta: "Texto un poco laaaaaargo"}
]);

// donde init se dispara en el creationComplete del .mxml
private function init():void
{
   ddf = new ClassFactory(List);
   var propiedades:Object = {
      showDataTips: true,
      dataTipField: "etiqueta"
   }
   ddf.properties = propiedades;
   var cb:ComboBox = new ComboBox();
   cb.dropdownFactory = ddf;
   cb.dataProvider = dp_ac;
   cb.width = 75;
   cb.labelField = "etiqueta";
   this.addChild(cb);
}


En caso de que el ComboBox se haga desde el MXML el código sería así (eliminando desde var cb:ComboBox = new ComboBox(); hasta this.addChild(cb); del código anterior):

Código :

<mx:ComboBox id="cb" dataProvider="{dp_ac}" dropdownFactory="{ddf}" width="75" labelField="etiqueta"/>

Y ya al momento de ejecución se vería como la siguiente imagen:

Enviar a twitter Enviar a facebook


También te interesa


Etiquetas flex actionscript_3

Comentarios | Enviar un comentario
Bueno, a primer vistazo procura no tomar las imágenes (al subir a L4C) en fullsize. Esto porque si no estas registrado no puedes visualizarlas.

Del resto, es un muy muy buen tip... Me parece que es un dato que siempre se debe de saber manejar, gracias por agregarlo ;)
Por: M@U
Muy bien redactado y al punto. Es como me gustan los tips. Muy bueno MoP, ya está en portada.
Por: Freddie
esta muy bien tu tuto men pero tiene error en esta parte

ddf = new ClassFactory(List);

eso es porque hay que importar el control list.. visiten mi blog sobre FLEX

http://detodoconroberts.blogspot.com/
Por: Shadonwk
Deja un comentario
IMPORTANTE

Recuerda ser respetuoso, no insultes a otras personas, ni uses palabrotas, hay una persona al otro lado de la pantalla.

Habla bien, NO ESCRIBAS EN MAYUSCULA TODO, no escribas como en un SMS, evita cosas como "ke", "x q" y demás abreviaciones.

Aquí funcionan las etiquetas de los foros, puedes usar [b] para negrita, [img] para las imágenes, [url] para los enlaces, etc.

Si tienes preguntas técnicas, envíalas mejor al foro.