Sim! Quando estiver lidando com uma situação onde você quer simplesmente apresentar o dado na sua coluna de um modo diferente do padrão. A palavra "apresentar" aqui é muito importante. Ou seja, o itemRenderer é uma maneira de mudar a apresentação do dado e não a sua edição (itemEditor),
[]'s Beck Novaes On 3 mar, 02:55, "Marcelo de Francisco" <[EMAIL PROTECTED]> wrote: > Existe alguma vantagem de usar o itemRenderer? > []s > > On Mar 2, 2:47 pm, "Fabio Goll" <[EMAIL PROTECTED]> wrote: > > > Faça a busca no canvas principal no creationComplete() e popule a > > variavel: > > > public var estados: ArrayCollection; > > > Crie o estados tambem no itemEditor. > > > E associe o estados do canvas pro itemEditor no próprio itemEditor: > > > this.estados = parentDocument.estados; > > > Vai ficar meio "fixo", mas deve resolver o seu problema. > > > Eu nunca consegui usar itemEditor, eu uso itemRenderer mesmo...UAhAHu > > > []s > > Fábio > > > On 2 mar, 11:57, "Beck Novaes" <[EMAIL PROTECTED]> wrote: > > > > Olá Marcelo, > > > > O problema ocorre porque o serviço será invocado a cada clique na > > > célula que tem o Combo. Como ele será populado novamente (o resultado > > > da chamada ao serviço) ele não consegue posicionar no item correto. > > > > Para resolver o problema você tem que dar um jeito de popular o > > > dataProvider do seu combo uma única vez e isto não pode ocorrer no > > > CreationComplete, pois o itemRender é criado e destruído a cada click > > > na célula. Entendeu? > > > > []'s > > > Beck Novaes > > > > On 1 mar, 16:09, "Marcelo de Francisco"<[EMAIL PROTECTED]> wrote: > > > > Beck, > > > > > Esse é o código que estou usando, talvez come ele você possa me ajudar > > > > > <mx:Canvas creationComplete="roCidades.lista()" > > > > xmlns:mx="http://www.adobe.com/2006/mxml" > > > > > > <mx:Script> > > > > <![CDATA[ > > > > private function viewUf(item:Object, > > > > column:DataGridColumn):String{ > > > > var sUf:String=""; > > > > > if(column.dataField=="uf") > > > > { > > > > if(item!=null) > > > > { > > > > if(item.uf!=null) > > > > { > > > > > > > > sUf=item.uf.nome; > > > > } > > > > } > > > > } > > > > return sUf; > > > > } > > > > ]]> > > > > </mx:Script> > > > > > <mx:RemoteObject id="roCidades" destination="Cidade" /> > > > > > <mx:DataGrid id="gdLista" width="397" height="194" > > > > horizontalCenter="0" verticalCenter="-1" > > > > dataProvider="{roCidades.lista.lastResult}" > > > > editable="true" > > > > > <mx:columns> > > > > <mx:DataGridColumn headerText="Nome" > > > > dataField="nome" width="200"/> > > > > <mx:DataGridColumn headerText="Estado" > > > > dataField="uf" > > > > labelFunction="viewUf" > > > > editorDataField="cbItem" > > > > > <mx:itemEditor> > > > > <mx:Component> > > > > <mx:VBox > > > > backgroundColor="yellow" creationComplete="initUf();" > > > > > <mx:Script> > > > > > > > > <![CDATA[ > > > > > > > > import RemoteObject; > > > > > > > > public var cbItem:Object; > > > > > > > > > [Bindable] > > > > > > > > private var roEstado:RemoteObject; > > > > > > > > > private function initUf():void > > > > > > > > { > > > > > > > > roEstado = new RemoteObject(); > > > > > > > > roEstado.destination = "Uf"; > > > > > > > > roEstado.lista(); > > > > > > > > } > > > > ]]> > > > > </mx:Script> > > > > > <mx:ComboBox > > > > id="cbEstado" > > > > dataProvider="{roEstado.lista.lastResult}" > > > > > > > > labelField="nome" change="cbItem=cbEstado.selectedItem" > > > > > > > > updateComplete="cbItem=cbEstado.selectedItem" > > > > > </mx:ComboBox> > > > > </mx:VBox> > > > > </mx:Component> > > > > </mx:itemEditor> > > > > > </mx:DataGridColumn> > > > > <mx:DataGridColumn headerText="Cep" > > > > dataField="cep"/> > > > > </mx:columns> > > > > </mx:DataGrid> > > > > > []s > > > > Marcelo de Francisco > > > > > On Feb 28, 9:09 pm, "Beck Novaes" <[EMAIL PROTECTED]> wrote: > > > > > > Olá Marcelo, > > > > > > Infelizmente esta informação não ajuda muito, uma vez que no exemplo > > > > > que eu passei o ComboBox também tem o seu dataProvider. A única > > > > > diferença é que ele é definido "on the fly" e é implicito. Eu poderia > > > > > ter declarado a propriedade dataProvider, mas neste caso não é > > > > > necessário por ser a propriedade default com ComboBox. > > > > > > Ou seja, isto: > > > > > > <mx:ComboBox> > > > > > <mx:String>col1.3.1</mx:String> > > > > > <mx:String>col1.3.2</mx:String> > > > > > <mx:String>col1.3.3</mx:String> > > > > > </mx:ComboBox> > > > > > > e isto: > > > > > > <mx:ComboBox> > > > > > <mx:dataProvider> > > > > > <mx:String>col1.3.1</mx:String> > > > > > <mx:String>col1.3.2</mx:String> > > > > > <mx:String>col1.3.3</mx:String> > > > > > <mx:dataProvider> > > > > > </mx:ComboBox> > > > > > > ... é a mesma coisa. > > > > > > Para eu poder te ajudar melhor preciso entrar mais no detalhe do seu > > > > > problema. > > > > > > []'s > > > > > Beck Novaes > > > > > > On 27 fev, 17:26, "Marcelo de Francisco" > > > > > > <[EMAIL PROTECTED]> wrote: > > > > > > Beck, > > > > > > > Não sei se ajuda, mas o componente comboBox é populado com um > > > > > > dataProvider > > > > > > > On Feb 27, 9:47 pm, "Beck Novaes" <[EMAIL PROTECTED]> wrote: > > > > > > > > Olá Marcelo, > > > > > > > > Eu não consegui simular o seu problema. O exemplo abaixo funciona > > > > > > > perfeitamente: > > > > > > > <?xml version="1.0" encoding="utf-8"?> > > > > > > > <mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" > > > > > > > layout="vertical"> > > > > > > > > <mx:DataGrid editable="true"> > > > > > > > > <mx:dataProvider> > > > > > > > <mx:Object col1="col1.1" col2="col1.2" > > > > > > > col3="col1.3.1"/> > > > > > > > <mx:Object col1="col2.1" col2="col2.2" > > > > > > > col3="col1.3.3"/> > > > > > > > <mx:Object col1="col3.1" col2="col3.2" > > > > > > > col3="col1.3.1"/> > > > > > > > <mx:Object col1="col4.1" col2="col4.2" > > > > > > > col3="col1.3.2"/> > > > > > > > <mx:Object col1="col5.1" col2="col5.2" > > > > > > > col3="col1.3.1"/> > > > > > > > </mx:dataProvider> > > > > > > > > <mx:columns> > > > > > > > <mx:DataGridColumn dataField="col1"/> > > > > > > > <mx:DataGridColumn dataField="col2"/> > > > > > > > <mx:DataGridColumn dataField="col3"> > > > > > > > <mx:itemEditor> > > > > > > > <mx:Component> > > > > > > > <mx:ComboBox> > > > > > > > > > > > > > > <mx:String>col1.3.1</mx:String> > > > > > > > > > > > > > > <mx:String>col1.3.2</mx:String> > > > > > > > > > > > > > > <mx:String>col1.3.3</mx:String> > > > > > > > </mx:ComboBox> > > > > > > > </mx:Component> > > > > > > > </mx:itemEditor> > > > > > > > </mx:DataGridColumn> > > > > > > > </mx:columns> > > > > > > > > </mx:DataGrid> > > > > > > > > </mx:Application> > > > > > > > > Se você puder fornecer mais informações talvez eu possa ajudar > > > > > > > melhor. > > > > > > > > []'s > > > > > > > Beck Novaes > > > > > > > > On 27 fev, 15:32, "Marcelo de Francisco" > > > > > > > > <[EMAIL PROTECTED]> wrote: > > > > > > > > Oi pessoal, > > > > > > > > > Estou há algum tempo apanhando de um problema e decidi ver se > > > > > > > > alguem > > > > > > > > pode me ajudar, é o seguinte. > > > > > > > > Tenho um datagrid que na edição de uma de suas colunas é um > > > > > > > > itemEditor > > > > > > > > com uma comboBox, essa comboBox tem um dataProvider que é uma > > > > > > > > lista > > > > > > > > que vem de um remoteObject, o problema é que toda vez que quero > > > > > > > > editar > > > > > > > > essa coluna, nao consigo posicionar o item da comboBox para um > > > > > > > > item > > > > > > > > que tenha o mesmo valor da coluna do dataGrid, sempre aparece o > > > > > > > > primeiro item da lista. Alguem sabe como posso fazer isso? > > > > > > > > > []s > > > > > > > > Marcelo de Francisco --~--~---------~--~----~------------~-------~--~----~ 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 -~----------~----~----~----~------~----~------~--~---
