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