Estou com um problema envolvendo duas grids e dois arraysCollections. Vou tentar explicar o problema.
Imagina que tenho duas grids onde a grid1 são produtos e a grid2 são os produtos selecionados da grid1. (Estou transferindo os dados de uma grid para outra através do click de um botão)
As duas grids são carregadas com dois ArrayCollections. Sendo a grid1 com o retorno de um select do banco e a grid2 com os arquivos selecionados da grid1.
O problema é que, quando clico no botão para carregar a grid2 os dados que existiam nela somem e carregam as novas linha selecionadas. Gostaria de atualizar os dados da grid2 e não substitui-los.
Ja tentei o atualizar a grid2 da seguinte maneira. modulos.addItem(modulosAprovados);
Onde.: modulos é o arrayCollection dos dados selecionados Grid2 e modulosAprovados o ArrayCollection que foi retornado do banco Grid1.
Seguinte amigo.
você deve estar passando um novo ArrayCollection td vez que clica no botão, por isso ele apaga os dados e passa a nova lista.
tente ao clicar no botão verificar se a lista já tem algum dado. se tiver vai adicionando os novos selecionados( array2.add.(dado)).
Espero ter ajudado
caputojf1
Recupere os dados da grid2, depois adicione os novos itens.
Sacou?
jrcardoso007
Amigo, vou te passar minha função para você dar uma olhada.
[Bindable]
private var modulosSelecionados:ArrayCollection; //Este é o ArrayCollection da Grid1 carregado em uma outra função com o retorno de um select
[Bindable]
private var modulosAprovados:ArrayCollection; //Este é o ArrayCollection que carrega a grid2, modulos selecionados
Mas com este codigo o programa não retorna nada, fica parado sem mensagem de erro e sem atualizar nada.
Parece que esta com algum problema quando utilizo a linha de comando modulosAprovados.length, pois se por teste eu tirar essa linha e deixar somente o comando modulosAprovados = modulos, o programa atualiza a grid2.
caputojf1
falei pra pegar da grid…tipo assim…
dataGrid2.dataProvider.addItem(modulo);
xdraculax
Ou, use a mesma collection para ambos os grids, e no grid 2 crie uma “filter function” que só exiba os items marcados como “aprovados”.
No grid 1, você só marca os itens como aprovados, e toda vez que aprovar um item voce só precisa dar um “refresh” no grid 2.
jrcardoso007
Amigos obrigado pelas dicas, mas infelizmente não deu certo caputojf1, tentei fazer direto na grid como sugerio, mas o programa não retorna nada, fica parado. E quanto ao filterFunction, estou dando uma pesquisada como fazer, como estou começando no flex, ainda não sei direito como fazer para filtrar os dados conforme necessito. Porque na verdade eu não quero somente os selecionados, pois o cara pode selecionar determinados produtos e esquecer algum, quando ele selecionar os que foram esquecidos ele deve acrescentar na grid 2. De qualquer forma obridado pela atenção.