Então Fabio,
O problema é como passar informação para o meu componente pelo
intemrender, se eu estou trabalhando em ActionScript
Eu tenho um classe que extende um datagrid e este cria as colunas em
runtime, e nem sou eu que dou os nomes para as colunas é um for de 52
laços e neste caso os nomas da colunas ficam coluna1, coluna2, coluna3
e por ai vai até coluna52, o problema algumas colunas podem ter que
tratar um componente interno de forma diferente... então eu não
consigo saber qual coluna meu componente esta para saber como gerencia-
lo.
package componentes.visuais.componentesPlanilha
{
import mx.controls.DataGrid;
public class DataGridMetricaConsumidor extends DataGrid
{
private var arrayColunas:Array;
private var totalSemanas:uint = 10;
public function DataGridMetricaConsumidor()
{
super();
this.arrayColunas = new Array();
this.arrayColunas.push(new ColunaIndice);
this.arrayColunas.push(new ColunaDesrcicaoConsumidor);
for(var i:uint = 1 ; i <= totalSemanas ; i++){
this.arrayColunas.push(new
ColunaSemanasConsumidor(i+"º
Semana"));
}
this.arrayColunas.push(new ColunaTotal);
this.columns = this.arrayColunas;
}
}
}
package componentes.visuais.componentesPlanilha
{
import mx.controls.dataGridClasses.DataGridColumn;
import mx.core.ClassFactory;
public class ColunaSemanasConsumidor extends DataGridColumn
{
private var componenteRender:ClassFactory = new
ClassFactory(ComponenteLinhas); // como posso passar dados para este
cara aqui!?? entende...
public function ColunaSemanasConsumidor(columnName:String=null)
{
super(columnName);
this.itemRenderer = componenteRender;
}
}
}
<?xml version="1.0" encoding="utf-8"?>
<mx:HBox xmlns:mx="http://www.adobe.com/2006/mxml"
horizontalAlign="center"
verticalAlign="middle"
horizontalGap="0"
verticalGap="0"
horizontalScrollPolicy="off"
creationComplete="init();" >
<mx:Script>
<![CDATA[
import componentes.dados.CalculosSemanas;
import mx.controls.Alert;
import mx.controls.dataGridClasses.DataGridColumn;
import mx.controls.DataGrid;
private function init():void{
CalculosSemanas.setColunaCorrente(data);
}
private function monitorColunas():void{
//CalculosSemanas.setColunaCorrente(data);
}
]]>
</mx:Script>
<mx:Label text="{CalculosSemanas.getColunaCorrente()}" width="100"
textAlign="center"/>
</mx:HBox>
On 2 jun, 16:49, Fábio Goll <[email protected]> wrote:
> Você tem algumas opções:
>
> - Envia um parametro para o itemRenderer, no meu caso, "campo" é a variavel
> public no meu componente:
>
> <mx:DataGridColumn headerText="Ajuste"
> dataField="percentualAjuste"
> editorDataField="valor"
> labelFunction="percLabelFunction" minWidth="50">
> <mx:itemEditor>
> <mx:Component>
> <componentes:ValoresRenderer campo="percentualAjuste" />
> </mx:Component>
> </mx:itemEditor>
> </mx:DataGridColumn>
>
> Ou vc captura o dataField informado na column através da variável listData
> no seu itemRenderer
> que é populada automagicamente, pois o seu itemrenderer implementa
> o:http://livedocs.adobe.com/flex/3/langref/mx/controls/listClasses/IDro...
>
> <http://livedocs.adobe.com/flex/3/langref/mx/controls/listClasses/IDro...>que
> por sua vez tem a propriedade
> dateField:http://livedocs.adobe.com/flex/3/langref/mx/controls/dataGridClasses/...
>
> 2010/6/2 Squik <[email protected]>
>
>
>
>
>
> > O irmãozinho pega leve e da um help ai para nós, a historinha é só
> > para descontrair mesmo.. he he he.
>
> > valew!
>
> > On 2 jun, 16:06, Pimenta <[email protected]> wrote:
> > > É cada maluco...
> > > Não era mais fácil, prático e rápido você descrever o seu problema ao
> > invés
> > > de contar uma histórinha muquirana dessas?
>
> > > Em 2 de junho de 2010 15:59, Squik <[email protected]> escreveu:
>
> > > > Olá querido colegas,
>
> > > > Fui ver meu neurologista ontem, disse a ele que minha enxaqueca estava
> > > > me matando... ele perguntou se eu tive alguma mudança da hábito
> > > > recentemente, e eu disse que não. Então ele me perguntou se eu estava
> > > > muito ansioso, eu disse para ele que sim, precisa entregar um projeto,
> > > > e não via a hora de deixá-lo pronto, porém segundo ele isto não era o
> > > > motivo da enxaqueca.. ai ele me perguntou se eu trabalhava com Adobe
> > > > Flex.. Então eu disse que sim. Então fiquei surpreso quando ele me
> > > > perguntou: Você andou tentando usar render em DATAGRIDS?
>
> > > > Eu disse: Sim Doutor, eu andei tentando capturar o nome da coluna do
> > > > meu DATAGRID a partir de um componente renderizado pela função
> > > > itemrender do Datagridcolumn, e dependendo da coluna o componente pode
> > > > variar.
>
> > > > Ele me perguntou: E você conseguiu obter a informação da coluna para
> > > > manipular seu componente? Ai eu disse: O fato de eu estar aqui
> > > > responde sua pergunta? (rsrsrs).
>
> > > > Então como todo bom médico ele me encaminhou para a o grupo “flexdev”.
> > > > Então se puderem me ajudar com minha enxaqueca eu sou muito grato.
> > > > Pelo menos para eu passar bem este feriado.
>
> > > > Abraço amigos!
>
> > > > --
> > > > 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 emhttp://groups.google.com/group/flexdev
>
> > > --
> > > -------------------------------------------------------------
> > > Desenvolvedor Java Pleno
> > > CSM, Certified ScrumMaster
> > > ----------------------------
> > > Bruno PIMENTA
> > > Cel: 21 7864.5857
> > > MSN: [email protected]
> > > -------------------------------------------------------------
>
> > --
> > 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 emhttp://groups.google.com/group/flexdev
>
> --
> Fábio Goll
> Gtalk/Msn: [email protected]
> Twitter: @fabiogoll
--
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