Fiz meu AdvancedDataGrid funcionar, não do jeito que eu quero, mas por enquanto tá valendo. Eu adicionei no evento click a chamada para o gc.refresh().
Bom, mas passando essa parte, o meu GroupingCollection, eu pretendo fazer dinâmico, como se fosse assim: root1 ---child1 ---child2 ------child2.1 ---------child2.1.1 root2 Ou seja, montar a hierarquia dinamicamente. Se tiver 2 filhos, mostrar até esses 2, se tiver 10, mostrar esses 10. Porém, quando utilizo o groupingcollection, parece que não tenho esse suporte, pois, se o máximo é até 5 filhos, ele tenta trazer todos com 5 filhos, e por não conseguir fazer o agrupamento, ele para de carregar o resto da grid. Alguém já montou uma hierarquia para advanceddatagrid dinâmica dessa maneira? E como fez o GroupingCollection? Abraço, Danilo 2008/6/6 Danilo <[EMAIL PROTECTED]>: > Fala Felipe, beleza? > Tentei o que você disse, e algumas outras coisas. Consegui fazer aparecer > algo pegando o evento click, e chamando o gc.refresh(); (mas só apareceu a > primeira categoria, mas acredito que seja um começo). > > Muito provavelmente, o problema está na hora que chamo o gc.refresh, assim > como você e o Marcelo já falaram. Apesar disso, ainda não sei onde chamar. > Estou enviando em anexo, o meu Mediator e o ListaContas.mxml. Caso tenha > paciência para dar uma olhada, ficarei grato, > > Atenciosamente > Danilo > > 2008/6/6 Felipe Fernandes <[EMAIL PROTECTED]>: > > >> Danilo posta também o listaContas. >> antes tenat o seguinte: >> listaContas.categories = categoryProxy.categories; >> listaContas.gc.source = listaContas.categories; >> listaContas.gc.refresh(); >> >> Felipe >> http://bobfernandes.wordpress.com >> >> >> 2008/6/5 Danilo <[EMAIL PROTECTED]>: >> > Felipe, na verdade, estou utilizando o PureMVC, e no meu código, está >> assim: >> > >> > public function ListaContasMediator(viewComponent:Object){ >> > super(NOME,viewComponent); >> > >> > listaContas.addEventListener(ListaContas.CREATE, onCreate); >> > listaContas.addEventListener(ListaContas.REMOVE, onDelete); >> > listaContas.addEventListener(ListaContas.SELECT, onSelect); >> > >> > categoryProxy = facade.retrieveProxy(CategoryProxy.NOME) as >> > CategoryProxy; >> > >> > listaContas.categories = categoryProxy.categories; >> > listaContas.gc.refresh(); >> > } >> > >> > e tem essa (que pega o listaContas): >> > private function get listaContas():ListaContas{ >> > return viewComponent as ListaContas >> > } >> > >> > Eu seto o categories, do listaContas, ali na linha em vermelho, e logo >> > abaixo dei o refresh. Porém, não funciona. >> > Não sei nem o que tentar de diferente mais. >> > >> > Abraço, >> > Danilo >> > >> > 2008/6/5 Felipe Fernandes <[EMAIL PROTECTED]>: >> >> >> >> Danilo, >> >> >> >> Deixa eu ver se consigo te ajudar, tem uma função no meio do seu >> >> código que trata o retorno dos dados e deve conter algo parecido com >> >> isso: >> >> categories = new ArrayCollection(event.result as Array); >> >> Agora adicione o seguinte logo abaixo: >> >> gc.refresh() >> >> >> >> Caso vc continue com dúvidas poste seu código (a parte flex) inteiro >> >> aqui, para que possamos te explicar melhor. >> >> >> >> Felipe >> >> http://bobfernandes.wordpress.com >> >> >> >> 2008/6/5 Danilo <[EMAIL PROTECTED]>: >> >> > Marcelo, >> >> > >> >> > Estou entendendo o que devo fazer. >> >> > Agora surgiu uma outra dúvida. >> >> > >> >> > No result do meu método que pega as categorias, eu adicionei o >> seguinte >> >> > código: >> >> > >> >> > var listaContas:ListaContas = new ListaContas(); >> >> > listaContas.gc.refresh(); >> >> > >> >> > Porém, não está funcionando, mas eu imagino que não esteja >> funcionando, >> >> > porque eu dei um new ListaContas. Correto? >> >> > Você sabe me dizer, como tem que ser o gc.refresh(), lá no meu proxy, >> >> > para >> >> > que ele funcione na tela listaContas? >> >> > >> >> > Abraço, >> >> > Danilo >> >> > 2008/6/5 Marcelo Savioli <[EMAIL PROTECTED]>: >> >> >> >> >> >> Danilo, >> >> >> >> >> >> Você pode colocar o gc.refresh() no result do metódo que carrega >> >> >> "categories". >> >> >> Pode também adicionar um listener no seu dataProvider para saber >> quando >> >> >> foi alterada a collection. >> >> >> >> >> >> Se precisar de ajuda com isso é só mandar. >> >> >> >> >> >> 2008/6/5 Danilo <[EMAIL PROTECTED]>: >> >> >>> >> >> >>> Eu fiz o debug, e entendi o que você quis dizer. Só não consigo >> fazer >> >> >>> funcionar agora. Será que tem como você me dar uma força nessa >> parte, >> >> >>> novamente? >> >> >>> >> >> >>> 2008/6/5 Danilo <[EMAIL PROTECTED]>: >> >> >>>> >> >> >>>> Marcelo, >> >> >>>> Até entendi o que você quis dizer, mas não entendi como fazer isso >> >> >>>> funcionar no código. Talvez seja por ser novato no as3, talvez >> seja >> >> >>>> incompetência minha mesmo. Será que teria como você explicar >> >> >>>> novamente? >> >> >>>> Desculpa o incômodo. >> >> >>>> >> >> >>>> Abraço, >> >> >>>> Danilo >> >> >>>> >> >> >>>> 2008/6/4 Marcelo Savioli <[EMAIL PROTECTED]>: >> >> >>>>> >> >> >>>>> Danilo, >> >> >>>>> >> >> >>>>> Apesar de estar no init da sua aplicação o retorno é assíncrono, >> >> >>>>> portanto ocorre aquilo que falei.. >> >> >>>>> Você pode utilizar o debug para confirmar isso. >> >> >>>>> >> >> >>>>> Esta já seria a forma mais simples de agrupar dados no >> >> >>>>> AdvancedDataGrid. Este componente é muito chato mesmo de se >> >> >>>>> trabalhar, da >> >> >>>>> para perceber claramente que ele não foi desenvolvido pela mesma >> >> >>>>> equipe que >> >> >>>>> desenvolveu o sdk. >> >> >>>>> >> >> >>>>> 2008/6/4 Danilo <[EMAIL PROTECTED]>: >> >> >>>>>> >> >> >>>>>> O meu serviço PHP, é chamado no init da aplicação. Essa é a >> >> >>>>>> primeira >> >> >>>>>> coisa a ser carregada. Na verdade, no GroupingCollection, eu >> >> >>>>>> imagino que o >> >> >>>>>> categories, esteja com seus dados, mesmo porque, se eu pegar >> esse >> >> >>>>>> mesmo >> >> >>>>>> categories, e colocar diretamente no AdvancedDataGrid, como >> >> >>>>>> dataProvider, >> >> >>>>>> ele monta normalmente. >> >> >>>>>> >> >> >>>>>> Será que não seria algum problema com os dados retornados do >> php? >> >> >>>>>> >> >> >>>>>> Você conhece uma maneira mais fácil, para montar o >> >> >>>>>> AdvancedDataGrid? >> >> >>>>>> >> >> >>>>>> Abraço, >> >> >>>>>> Danilo >> >> >>>>>> >> >> >>>>>> 2008/6/4 Marcelo Savioli <[EMAIL PROTECTED]>: >> >> >>>>>>> >> >> >>>>>>> Danilo, >> >> >>>>>>> >> >> >>>>>>> Pode não ser o seu caso, mas vamos tentar. >> >> >>>>>>> >> >> >>>>>>> Quando você faz: >> >> >>>>>>> >> >> >>>>>>> <mx:dataProvider> >> >> >>>>>>> <mx:GroupingCollection id="gc" source="{categories}"> >> >> >>>>>>> <mx:Grouping> >> >> >>>>>>> <mx:GroupingField name="catA"/> >> >> >>>>>>> <mx:GroupingField name="catB"/> >> >> >>>>>>> <mx:GroupingField name="catC"/> >> >> >>>>>>> <mx:GroupingField name="catD"/> >> >> >>>>>>> </mx:Grouping> >> >> >>>>>>> </mx:GroupingCollection> >> >> >>>>>>> </mx:dataProvider> >> >> >>>>>>> >> >> >>>>>>> Você esta dizendo que o dataProvider é uma GroupingCollection >> >> >>>>>>> baseada >> >> >>>>>>> em "categories". A principio, "categories" é vazio. Então a >> >> >>>>>>> GroupingCollection passa uma coleção vazia para o dataProvider >> do >> >> >>>>>>> grid. >> >> >>>>>>> Quando você chama seu serviço no PHP, "categories" é >> atualizado, >> >> >>>>>>> porém a GroupingCollection não monta automaticamente um novo >> >> >>>>>>> dataprovider >> >> >>>>>>> baseado nessa mudança. >> >> >>>>>>> Por isso, ao chamar o refresh da GroupingCollection você estará >> >> >>>>>>> fazendo com que a GroupingCollection monte novamente uma >> coleção >> >> >>>>>>> para servir >> >> >>>>>>> de dataProvider ao grid. >> >> >>>>>>> >> >> >>>>>>> Portanto, sempre que modificar sua coleção é necessário >> remontar o >> >> >>>>>>> dataProvider do grid utilizando o "gc.refresh()". >> >> >>>>>>> >> >> >>>>>>> 2008/6/4 Danilo <[EMAIL PROTECTED]>: >> >> >>>>>>>> >> >> >>>>>>>> Marcelo, >> >> >>>>>>>> Mas, eu acho que os dados já retornaram do php, visto que se >> eu >> >> >>>>>>>> uso >> >> >>>>>>>> um dataprovider antes de dar um GroupingCollection, os dados >> >> >>>>>>>> montam a grid >> >> >>>>>>>> normalmente. Caso eu esteja equivocado, não entendi o que você >> >> >>>>>>>> quis dizer, >> >> >>>>>>>> ou como fazer o que você disse. >> >> >>>>>>>> >> >> >>>>>>>> Att, >> >> >>>>>>>> Danilo >> >> >>>>>>>> >> >> >>>>>>>> 2008/6/3 Marcelo Savioli <[EMAIL PROTECTED]>: >> >> >>>>>>>>> >> >> >>>>>>>>> Danilo, >> >> >>>>>>>>> >> >> >>>>>>>>> Faz o "gc.refresh()" após os dados retornarem do php. >> >> >>>>>>>>> >> >> >>>>>>>>> 2008/6/3 Danilo <[EMAIL PROTECTED]>: >> >> >>>>>>>>>> >> >> >>>>>>>>>> Olá pessoal, >> >> >>>>>>>>>> Estou com um problema, para mostrar os dados que vêm do >> amfphp >> >> >>>>>>>>>> no >> >> >>>>>>>>>> AdvancedDatagrid, agrupados. >> >> >>>>>>>>>> Atualmente, estou retornando os objetos do amfphp em uma >> array, >> >> >>>>>>>>>> da >> >> >>>>>>>>>> seguinte maneira: >> >> >>>>>>>>>> >> >> >>>>>>>>>> $arrTree[$i]["catA"] = $r->catA; >> >> >>>>>>>>>> $arrTree[$i]["catB"] = $r->catB; >> >> >>>>>>>>>> $arrTree[$i]["catC"] = $r->catC; >> >> >>>>>>>>>> $arrTree[$i]["catD"] = $r->catD; >> >> >>>>>>>>>> $i++; >> >> >>>>>>>>>> >> >> >>>>>>>>>> >> >> >>>>>>>>>> E no final, retorno a array $arrTree. >> >> >>>>>>>>>> >> >> >>>>>>>>>> Acontece, que se eu quiser listar em um Datagrid, funciona >> >> >>>>>>>>>> perfeitamente! >> >> >>>>>>>>>> Porém, gostaria de listar Hierarquicamente em um >> >> >>>>>>>>>> AdvancedDatagrid, >> >> >>>>>>>>>> juntamente com outros valores, mas não estou conseguindo >> montar >> >> >>>>>>>>>> o >> >> >>>>>>>>>> agrupamento dos itens. Tentei da seguinte maneira: >> >> >>>>>>>>>> >> >> >>>>>>>>>> <mx:dataProvider> >> >> >>>>>>>>>> <mx:GroupingCollection id="gc" >> source="{categories}"> >> >> >>>>>>>>>> <mx:Grouping> >> >> >>>>>>>>>> <mx:GroupingField name="catA"/> >> >> >>>>>>>>>> <mx:GroupingField name="catB"/> >> >> >>>>>>>>>> <mx:GroupingField name="catC"/> >> >> >>>>>>>>>> <mx:GroupingField name="catD"/> >> >> >>>>>>>>>> </mx:Grouping> >> >> >>>>>>>>>> </mx:GroupingCollection> >> >> >>>>>>>>>> </mx:dataProvider> >> >> >>>>>>>>>> >> >> >>>>>>>>>> Seguindo alguns exemplos que encontrei na própria >> documentação >> >> >>>>>>>>>> da >> >> >>>>>>>>>> adobe. >> >> >>>>>>>>>> No evento creationComplete, eu tento chamar esse agrupamento >> >> >>>>>>>>>> assim: creationComplete="{gc.refresh();}" >> >> >>>>>>>>>> Mas não está funcionando. >> >> >>>>>>>>>> >> >> >>>>>>>>>> Alguém sabe me dizer, onde pode estar ocorrendo o erro? Eu >> sei >> >> >>>>>>>>>> que >> >> >>>>>>>>>> os dados de categories, estão chegando, tanto que se eu >> >> >>>>>>>>>> utilizar um >> >> >>>>>>>>>> dataProvider="{categories}" no AdvancedDataGrid, ele >> funciona >> >> >>>>>>>>>> normalmente, >> >> >>>>>>>>>> porém, parece que não estou conseguindo tratar estes dados. >> >> >>>>>>>>>> >> >> >>>>>>>>>> Será que alguém consegue me ajudar? >> >> >>>>>>>>>> >> >> >>>>>>>>>> Abraço, >> >> >>>>>>>>>> Danilo >> >> >>>>>>>>>> >> >> >>>>>>>>>> >> >> >>>>>>>>> >> >> >>>>>>>>> >> >> >>>>>>>>> >> >> >>>>>>>>> -- >> >> >>>>>>>>> Marcelo Curi Savioli >> >> >>>>>>>>> D-Click Web & Mobile Solutions >> >> >>>>>>>>> [EMAIL PROTECTED] >> >> >>>>>>>>> www.dclick.com.br/blog >> >> >>>>>>>>> www.dclick.com.br >> >> >>>>>>>>> >> >> >>>>>>>> >> >> >>>>>>>> >> >> >>>>>>>> >> >> >>>>>>> >> >> >>>>>>> >> >> >>>>>>> >> >> >>>>>>> -- >> >> >>>>>>> Marcelo Curi Savioli >> >> >>>>>>> D-Click Web & Mobile Solutions >> >> >>>>>>> [EMAIL PROTECTED] >> >> >>>>>>> www.dclick.com.br/blog >> >> >>>>>>> www.dclick.com.br >> >> >>>>>>> >> >> >>>>>> >> >> >>>>>> >> >> >>>>>> >> >> >>>>> >> >> >>>>> >> >> >>>>> >> >> >>>>> -- >> >> >>>>> Marcelo Curi Savioli >> >> >>>>> DClick Web & Mobile Solutions >> >> >>>>> [EMAIL PROTECTED] >> >> >>>>> www.dclick.com.br/blog >> >> >>>>> www.dclick.com.br >> >> >>>>> >> >> >>>> >> >> >>> >> >> >>> >> >> >>> >> >> >> >> >> >> >> >> >> >> >> >> -- >> >> >> Marcelo Curi Savioli >> >> >> DClick Web & Mobile Solutions >> >> >> [EMAIL PROTECTED] >> >> >> www.dclick.com.br/blog >> >> >> www.dclick.com.br >> >> >> >> >> > >> >> > >> >> > > >> >> > >> >> >> >> >> >> >> >> -- >> >> Felipe - http://bobfernandes.wordpress.com >> >> >> >> >> > >> > >> > > >> > >> >> >> >> -- >> Felipe - http://bobfernandes.wordpress.com >> >> >> >> > --~--~---------~--~----~------------~-------~--~----~ Você recebeu esta mensagem porque está inscrito na lista "flexdev" Para enviar uma mensagem, envie um e-mail para flexdev@googlegroups.com 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 -~----------~----~----~----~------~----~------~--~---