Comunidad de diseño web y desarrollo en internet online

Cómo obtener datos de un DataGrid sin conocer los 'dataField

Citar            
MensajeEscrito el 23 Nov 2010 02:12 pm
Estoy emprezando con esto de Flex y todavía tengo dificultades con cosas básicas. Estoy haciendo un componente en ActionScript que extiende de DataGrid con el fin de añadirle unos botones para la paginación y demás funcionalidades. Pretendo que al pulsarse una tecla cuando el campo tiene el foco, la barra de desplazamiento vertical se mueva automáticamente hasta la primera fila que tiene en la primera columna un valor que comience por el caracter pulsado. ¿Esto es posible? De entrada necesitaría poder acceder a los valores de la columna 0 sin conocer el 'dataField' (en cada caso sería uno distinto) pero soy incapaz. Con esto...

var columnas:Array = this.columns;
Alert.show(columnas[0].dataField,"dataField"); //Se muestra valor de 'dataFiled'

...averiguo cuál es el dataField pero no sé como podría obtener el valor que tiene la columna en cada fila.

Por CLAnonimo

Claber

600 de clabLevel

5 tutoriales
1 articulo

 

Este es un usuario anónimo genérico para las cuentas borradas o perdidas.

msie8
Citar            
MensajeEscrito el 23 Nov 2010 02:36 pm
¿Por que no accedes al Dataprovider en vez de al Datagrid? En ese caso harías:

dp.getItemAt(0)

trazas el objeto con un for ... in y miras como se llama la primera columna, entonces sería

var item:Object = dp.getItemAt(0)
trace(item.nombreDelCampo)

Jorge

Por solisarg

BOFH

13669 de clabLevel

4 tutoriales
5 articulos

Genero:Masculino   Bastard Operators From Hell Premio_Secretos

Argentina

firefox
Citar            
MensajeEscrito el 23 Nov 2010 02:51 pm
Gracias, Jorge, pero desgraciadamente la repuesta no me sirve. Con lo que me cuentas, si por ejemplo la columna se llama 'columnaEjemplo' obtengo el valor con...

var item:Object = dp.getItemAt(0)
trace(item.columnaEjemplo)

...pero el problema lo tengo en que estoy haciendo un componente nuevo en ActionScript y cuando se use el componente se podrán establecer los 'dataField' que se quieran para las columnas de modo que es un valor variable. Con esto...

var columnas:Array = this.columns;
Alert.show(columnas[0].dataField,"dataField");

...obtengo el nombre de la columna ('dataField') pero no puedo hacer que lo que sigue a 'item.' sea variable. No sé si hay algún modo de acceder al atributo de 'item' de algún otro modo indirecto, no escribiendo el nombre de la columna directamente sino pasándole un parámetro a algo o algo así. ¿Entiendes lo que quiero decir?

Gracias, de todos modos.

Por CLAnonimo

Claber

600 de clabLevel

5 tutoriales
1 articulo

 

Este es un usuario anónimo genérico para las cuentas borradas o perdidas.

msie8
Citar            
MensajeEscrito el 23 Nov 2010 03:05 pm
Cuando recorres un objeto con un for ... in, te va dando las propiedades en orden inverso, en este ejemplo trazo el primer elemento sin saber el nombre de la propiedad:

Código ActionScript :

var columnas:Array = [{Nombre:"Pepe", Apellido:"Suarez"}, {nombre:"Juan", Apellido:"Gomez"}]
for(var i in columnas[0]) {}
trace(columnas[0][i])


Puedes hacer algo similar con el objeto transicional que usas

Jorge

Por solisarg

BOFH

13669 de clabLevel

4 tutoriales
5 articulos

Genero:Masculino   Bastard Operators From Hell Premio_Secretos

Argentina

firefox
Citar            
MensajeEscrito el 23 Nov 2010 03:29 pm
Gracias, tío, me ha servido. La verdad es que estoy empezando con ActionScript y no he tenido tiempo de estudiarme algún manual, ni siquiera sabía que ese tipo de bucle 'for' fuera posible.

Muchas gracias.

Por CLAnonimo

Claber

600 de clabLevel

5 tutoriales
1 articulo

 

Este es un usuario anónimo genérico para las cuentas borradas o perdidas.

msie8

 

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