Marcelo,
A discussão sobre o checkbox no datagrid já foi bastante discutida aqui,
então se você der uma pesquisada nas mensagens anteriores quanto a
"itemRenderer", "itemEditor" e a propriedade 'rendererIsEditor' do
DataGridColumn, você vai encontrar ótimos conteúdos a respeito. Seu foco,
nesse caso específico deve direcionar a estudar o "itemRenderer" e a
propriedade "itemRendererIsEditor" que citei. Mas aproveite para etudar o
"itemEditor" e compreender bem a coisa. Tem uma mensagem do Beck que é
excelente a respeito. Não é uma questão tão complexa de se resolver. Se
permanecerem as duvidas a respeito, a galera aqui é das melhores para tentar
ajudar.

Quanto a ArrayCollection e XMLList, seja utilizando AMF, HTTPRequest ou
WebService, você sempre poderá utilizar ambos. Não é especificamente essa a
questão que deve direcionar sua decisão e sim como você vai (ou pode)
consumir os dados que forem retornados por eles. O que realmente muda é o
esforço (lógica) que você vai ter que aplicar para trabalhar com um tipo de
dados ou outro em cada situação.

Eu, particularmente, sempre que possível - e muitas vezes procuro tornar
isso possivel, quando a situação presente já não é essa - uso AMF (no meu
caso com o LiveCycle no ColdFusion) me trazendo objetos (uma array destes
objetos) que são traduzidos para os objetos representados por outras classes
no lado do Flex. Vide o MetaData "RemoteAlias" à ser aplicado nas classes
que representarão os dados provenientes do server-side através de AMF.
Realmente, trabalhando com AMF você acaba sendo incentivado a lidar com
ArrayCollection. Mas isso não é ia restrição, ok?

Outro detalhe importante é não ligar o formato dos dados ao seu problema com
o "itemEditor/itemRenderer". Com ambos os formatos de fonte de dados para o
DataGrid, isso é plenamente funcional.

Veja abaixo um exemplo pra te ajudar:


<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml"; layout="vertical">
<mx:Script>
<![CDATA[
import mx.controls.Alert;
]]>
</mx:Script>
 <mx:Script>
<![CDATA[
import mx.collections.ArrayCollection;
 [Bindable] private var xmlDataProvider:XMLList =
<>
<item name="item 0" selected="false"/>
<item name="item 1" selected="false"/>
<item name="item 2" selected="false"/>
<item name="item 3" selected="false"/>
<item name="item 4" selected="false"/>
<item name="item 5" selected="false"/>
<item name="item 6" selected="false"/>
<item name="item 7" selected="false"/>
<item name="item 8" selected="false"/>
<item name="item 8" selected="false"/>
<item name="item 10" selected="false"/>
<item name="item 11" selected="false"/>
</>;
 [Bindable] private var arrayCollectionDataProvider:ArrayCollection = new
ArrayCollection(
[
{name: "item 0", selected: false},
{name: "item 1", selected: false},
{name: "item 2", selected: false},
{name: "item 3", selected: false},
{name: "item 4", selected: false},
{name: "item 5", selected: false},
{name: "item 6", selected: false},
{name: "item 7", selected: false},
{name: "item 8", selected: false},
{name: "item 9", selected: false},
{name: "item 10", selected: false},
{name: "item 11", selected: false},
]
);
 ]]>
</mx:Script>
 <mx:DataGrid id="dgXML" dataProvider="{xmlDataProvider}" rowCount="5"
editable="true">
<mx:columns>
<mx:DataGridColumn id="dgcXmlName" headerText="name" dataField="@name"/>
<mx:DataGridColumn id="dgcXmlSelected"
headerText="selected"
editable="true"
dataField="@selected"
editorDataField="selected"
rendererIsEditor="true"
>
<mx:itemRenderer>
<mx:Component>
<mx:CheckBox selected="{([EMAIL PROTECTED] == 'true')}"/>
</mx:Component>
</mx:itemRenderer>
</mx:DataGridColumn>
</mx:columns>
</mx:DataGrid>
 <mx:DataGrid id="dgArrayCollection"
dataProvider="{arrayCollectionDataProvider}" rowCount="5" editable="true">
<mx:columns>
<mx:DataGridColumn id="dgcACollName" headerText="name" dataField="name"/>
<mx:DataGridColumn id="dgcACollSelected"
headerText="selected"
editable="true"
dataField="selected"
editorDataField="selected"
rendererIsEditor="true"
>
<mx:itemRenderer>
<mx:Component>
<mx:CheckBox selected="{data.selected}"/>
</mx:Component>
</mx:itemRenderer>
</mx:DataGridColumn>
</mx:columns>
</mx:DataGrid>
</mx:Application>




2008/10/21 Marcello Fontolan <[EMAIL PROTECTED]>

>
>    Pessoal, boa tarde,
>
>    Tem dois assuntos me tirando o sono e até, de certa forma, me
> desanimando...
>    Um surgiu da dúvida do outro e vou compartilhar, claro que na
> esperança de alguma ajuda.
>
>    Procurei muito sobre como colocar um CheckBox dentro de um DataGrid
> e consegui fazer ele aparecer corretamente e mostrar seu estado.
>    Meus problemas começaram quando tentei fazer com que os dados fossem
> alterados através dele.
>    PS: o campo que contem o estado vem o Postgres, na forma de "T" ou "F".
>    Vi inúmeros exemplos, com formas diferentes de fazer porém, não
> consegui implementar.
>    Alguns descrevem a implementação apenas com componentes do Flex,
> outros criam componentes para Render e até um novo DataGrid eu vi!
>
>    Então, vendo alguns exemplos, descobri que muita gente usa
> ArrayCollection...
>
>    Estou usando atualmente os dados na forma de XMLList, sempre obtidas
> através de HTTPRequest porém, acredito que para usar algo como AMFPHP,
> webORB ou BlazeDS a forma correta seria uma ArrayCollection dos objetos.
>    Sei que a resposta é subjetiva pois depende de como cada um resolve
> fazer sua aplicação, mas é justamente isto que gostaria, de estimular
> uma pequena discussão sobre como as coisas são feitas.
>
>    Abraços a todos,
>
>    Marcello Fontolan
>
>
> >
>


-- 
Vicente Maciel Junior
Independent Web Developer & Consultant
Adobe Advanced Certified Developer
Adobe Certified Instructor (ColdFusion & Flash Platform)
+55 71 9212-0909 / 8120-0035
MSN: [EMAIL PROTECTED] / Twitter: macieljr
http://teclandoalto.blogspot.com

--~--~---------~--~----~------------~-------~--~----~
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
-~----------~----~----~----~------~----~------~--~---

Responder a