Comunidad de diseño web y desarrollo en internet online

Consulta codigo publicado por Zandy

Citar            
MensajeEscrito el 08 May 2008 03:05 pm
Hola nuevos amigos (jejeje)...

Buscando ayuda en internet llegue aqui y necesito que me ayuden sobre un codigo que has puesto aqui de como colorear un data grid en Flex

http://www.cristalab.com/tips/46955/como-colorear-una-fila-de-un-datagrid-en-flex

pero resulta que no me funciona... queria ver si alguien me publica el mismo codigo pero ordenado y funcionando para adaptarlo a una aplicacion que estoy realisando, soy nuevo en esto e igual recien estoy aprendiendo.

Gracias.
pd:
porque algunas lineas comienzan con <local:.... y otras con <mx:....

gracias por responder ambas respuestas.

Por micky82

3 de clabLevel



Genero:Masculino  

msie7
Citar            
MensajeEscrito el 08 May 2008 05:11 pm
Solo he mirado por encima el código de Zandy, pero drawRowBackground es un método estandard del datagrid, ¿no te funciona con el ejemplo tal cual? (el script va en el raiz

mx es el espacio de nombres por defecto de Flex, local es el espacio de nombre para su package, es decir si lo pones en com.pepito, luego al principio del documento pones

xmlns:local="com/pepito"

Jorge

Por solisarg

BOFH

13669 de clabLevel

4 tutoriales
5 articulos

Genero:Masculino   Bastard Operators From Hell Premio_Secretos

Argentina

firefox
Citar            
MensajeEscrito el 08 May 2008 05:46 pm
Mi archivo se llama ejemplopintar.MXML y esta dentro de la carpeta src, y el archivo MyDataGrid.es esta dentro de una carpeta com, el codigo de ellos es el siguiente

Necesito ayuda plisss!!

"ejemplopintar.MXML"
<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" xmlns:local="com" layout="absolute" >

<mx:Script>
<![CDATA[
import mx.collections.ArrayCollection;
import mx.controls.DataGrid;
import flash.display.Sprite;
import mx.controls.Alert;

[Bindable]
public var f:ArrayCollection = new ArrayCollection();



public function a():void
{
var h:Object = new Object;
for(var i:int = 0;i < 10; i++ )
{
//Alert.show((StringUtil.trim(i.toString())));
h = {};
h["products"] = "Judias_" [i].toString();
h["price"] = 10 * i;
f.addItem(h);
}
}
]]></mx:Script>


<mx:Button x="54" y="190" label="Button" id="boton" click="a()"/>

<local:MyDataGrid dataProvider="{ f }">
<local:columns>
<mx:DataGridColumn headerText="Column 1" dataField="products"/>
<mx:DataGridColumn headerText="Column 2" dataField="price"/>
</local:columns>
</local:MyDataGrid>

</mx:Application>

--------------------------------------------------------------------------------------------------------------------------------------------------------------------
"MyDataGrid.es"

package
{
import mx.collections.ArrayCollection;
import mx.controls.DataGrid;
import flash.display.Sprite;

public class MyDataGrid extends DataGrid
{
override protected function drawRowBackground(s:Sprite,rowIndex:int,y:Number,height:Number,color:uint,dataIndex:int):void
{
var dp:ArrayCollection = dataProvider as ArrayCollection;
var item:Object;
if( dataIndex < dp.length )
item = dp.getItemAt(dataIndex);
if( item != null && item.price < 20 )
color = 0xFF8800;
else color = 0xFFFFFF;
super.drawRowBackground(s,rowIndex,y,height,color,dataIndex);

}
}
}

Por micky82

3 de clabLevel



Genero:Masculino  

msie7
Citar            
MensajeEscrito el 09 May 2008 10:07 am
Está bien el ejemplito. Lo copié, lo pegué y el único error que me dio fue en esta línea:

h["products"] = "Judias_" [i].toString();

Como son datos de ejemplo, lo cambié a esto

h["products"] = "Judias_"+i;

Luego si has puesto la clase en la carpeta com (mala idea, los paquetes van en dominio completo), tu clase debería empezar así:

package com
{
import mx.collections.ArrayCollection;
import mx.controls.DataGrid;
import flash.display.Sprite;

public class MyDataGrid extends DataGrid
....

Jorge

Por solisarg

BOFH

13669 de clabLevel

4 tutoriales
5 articulos

Genero:Masculino   Bastard Operators From Hell Premio_Secretos

Argentina

firefox
Citar            
MensajeEscrito el 12 May 2008 08:54 pm
Gracias por la respuesta final y queria saber si alguin me puede decir como poner color a una celda segun el dato
Por ejemplo lleno un data grid con 1's y 0's y segun este valor poner de fondo colores distintos (rojo y verde por ejemplo)....

Gracias

Por micky82

3 de clabLevel



Genero:Masculino  

msie7
Citar            
MensajeEscrito el 12 May 2008 11:03 pm
Si le das a F1, diccionario de componentes, Loader.percentLoaded , tienes un ejemplo de copiar y pegar

Jorge

Por solisarg

BOFH

13669 de clabLevel

4 tutoriales
5 articulos

Genero:Masculino   Bastard Operators From Hell Premio_Secretos

Argentina

firefox
Citar            
MensajeEscrito el 13 May 2008 02:07 am
Uff, se me mezclaron los POST, la respuesta anterior era para otra cosa.
En el caso de las filas, mira esta parte:

if( item != null && item.midato==0 )
color = 0xFF8800;
else color = 0xFFFFFF;

En este caso si midato (adáptalo a como se llamo tu columna) fuera cero sería de un color, sino de otro

Jorge

Por solisarg

BOFH

13669 de clabLevel

4 tutoriales
5 articulos

Genero:Masculino   Bastard Operators From Hell Premio_Secretos

Argentina

firefox

 

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