Leurimar,
É chato de fazer, mas depois que você pega a manha se torna fácil, vou
te mandar o codigo que uso aqui e vc implementa! Qualquer dúvida entra
em contato.
Criamos um class com o seguinte código
//nome do arquivo: RenderDatagrid.as
//controls é minha pasta, vc pode colocar onde quiser mas altere aqui
caso a pasta seja diferente blz?
package controls
{
import flash.events.Event;
import mx.controls.DataGrid;
import mx.controls.Label;
import mx.controls.dataGridClasses.*;
public class RenderDatagrid extends Label {
public function RenderDatagrid():void {
addEventListener(Event.RENDER, renderListener);
}
public function styleIt() : Boolean {
return false;
}
public function styleTrue() : void {
}
public function styleFalse() : void {
}
public function styleNormal() : void {
}
protected function renderListener(event:Event) : void {
if (listData != null) {
var grid:DataGrid = DataGrid(DataGridListData(listData).owner);
if (!grid.isItemHighlighted(data) && grid.selectedItem != data)
{
if (styleIt()) {
styleTrue();
} else {
styleFalse();
}
} else {
styleNormal();
}
}
}
}
}
//final do arquivo RenderDatagrid.as
//criamos um novo class
//nome do arquivo: TesteRenderer.as
//controls é minha pasta, vc pode colocar onde quiser mas altere aqui
caso a pasta seja diferente blz?
package controls
{
import mx.controls.dataGridClasses.*;
public class TestRenderer extends RenderDatagrid{
public override function styleIt() : Boolean {
//essa linha vc deve mudar o cTipoLan é o que estou monitorando ou
seja a que recebe se foi credito ou debito ai é
//so alterar o cTipoLan lembrando que o cTipoLan é o nosso dataField
da nossa coluna do grid
return data.cTipoLan == "CRÉDITO";
}
//as cores ja estao certas, azul neste caso
public override function styleTrue() : void {
this.opaqueBackground = 0x6699FF;
}
//as cores ja estao certas, vermelho neste caso
public override function styleFalse() : void {
this.opaqueBackground = 0xFF6666;
}
public override function styleNormal() : void {
this.opaqueBackground = null;
}
}
}
//final do arquivo TestRenderer.as
//criamos nosso arquivo mxml que vai conter o grid vou usar
TitleWindow, mas vc pode usar o que quiser, canvas, aplicativo vc //
escolhe
nome do arquivo dataGrid.mxml
<?xml version="1.0" encoding="utf-8"?>
<mx:TitleWindow
xmlns:mx="http://www.adobe.com/2006/mxml"
layout="absolute" width="584" height="350"
title="EXEMPLO DATAGRID" autoLayout="true"
horizontalScrollPolicy="auto" verticalScrollPolicy="auto"
cornerRadius="10" borderColor="#0303FD" color="#FFFFFF"
fontWeight="bold" fontSize="10" themeColor="#B0BDFB"
//NAO ESQUECE DE PUXAR OS ARQUIVOS QUE CRIOU NO MEU CASO USEU
"XMLNS:NS2.... E POR AI VAI"
backgroundAlpha="0.7" alpha="1.0" xmlns:ns2="controls.*">
<mx:DataGrid rollOverColor="0xff9900" selectionColor="0xff6600"
x="10" y="10" id="datagridRegistros" width="544"
dataProvider="{COLOQUE SEU DATA PROVIDER AQUI}" height="300">
<mx:columns>
//ESSA COLUNA E AQUI VOU FICAR MONITORANDO ENTAO ELA É A PRIMEIRA, MAS
DETALHE ESSA COLUNA NAO APARECE NO GRID COLOQUEI ELA COM
//VISIBLE="FALSE", VC ESCOLHE O QUE FAZER NO FINAL FAÇO O INTEM
RENDERER
<mx:DataGridColumn headerText="Tipo Lan.:" width="60" visible="false"
dataField="cTipoLan" itemRenderer="controls.TestRenderer"/>
//AI DEPOIS O LANCE É O SEGUINTE CADA LINHA DA COLUNA QUE VC QUER
COLORIR VC COLOCA OS CODIGO ABAIXO COMO ABAIXO AI VOU SEPARAR //AS
COLUNAS PRA VC ENTENDER MELHOR
<mx:DataGridColumn headerText="Data de Pag.:" width="110"
dataField="cDataPag">
<ns2:itemRenderer>
<mx:Component>
<ns2:TestItemRenderer/>
</mx:Component>
</ns2:itemRenderer>
</mx:DataGridColumn>
<mx:DataGridColumn headerText="Cliente e Fornecedor:" width="150"
dataField="cCliFor">
<ns2:itemRenderer>
<mx:Component>
<ns2:TestItemRenderer/>
</mx:Component>
</ns2:itemRenderer>
</mx:DataGridColumn>
<mx:DataGridColumn headerStyleName="Datagrid" headerText="Descrição:"
width="120" dataField="cDescricao">
<mx:itemRenderer>
<mx:Component>
<ns2:TestItemRenderer/>
</mx:Component>
</mx:itemRenderer>
</mx:DataGridColumn>
<mx:DataGridColumn headerStyleName="Datagrid" headerText="Valor:"
width="120" dataField="cValorPag">
<mx:itemRenderer>
<mx:Component>
<ns2:TestItemRenderer/>
</mx:Component>
</mx:itemRenderer>
</mx:DataGridColumn>
</mx:columns>
</mx:DataGrid>
</mx:TitleWindow>
//final do arquivo dataGrid.mxml
Leurimar nao cheguei a testar esse datagrid mas acho que ja ajuda a
clarear as ideias, mas se precisar de algo mais estamos ai...
Qualquer coisa é so mandar as duvidas que o pessoal do grupo aqui sao
danados sempre encontramos nossas soluçoes...
abraço e espero ter ajudado.
Atenciosamente,
Luiz Nogueira
On 26 jan, 16:19, Leurimar Lins <[email protected]> wrote:
> Ola pessoal...gostaria de saber...como faco pra mudar a cor de um dado
> dentro do datagrid....por exemplo.....tenho um dataGrid com uma coluna so
> contendo numeros...se um numero for negativo...quero q fique em
> vermelho....agradeço qualquer ajuda.
--~--~---------~--~----~------------~-------~--~----~
Você recebeu esta mensagem porque está inscrito na lista "flexdev"
Para enviar uma mensagem, envie um e-mail para [email protected]
Para sair da lista, envie um email em branco para
[email protected]
Mais opções estão disponíveis em http://groups.google.com/group/flexdev
-~----------~----~----~----~------~----~------~--~---