Flex dataGrid - Operações no dataProvider.

   

Deste feita fiz um exemplo para tentar explicar a quem tem duvidas sobre como efectuar operações (CRUD) numa datagrid. O exemplo começa por mostrar como criar um dataProvider para uma dataGrid, e de seguida fazer variados tipos de operações como:

-Alteração dos dados de determinada linha e coluna.

-Apagar a linha seleccionada

-Recriar automaticamente e aleatoriamente um novo dataProvider

Neste exemplo são usadas funções que podem ser usadas para qualquer outro dataProvider, devido ao reaproveitamento das funções, podem também ser observados certos exemplos de como “encher” uma dataGrid e trabalhar com o seu dataProvider (arrayCollection) acedendo aos seus campos, como o dataProvider é “dinamico/Bindable” quando ele é actualizado os dados são actualizados automaticamente na dataGrid.

É mais um exemplo bastante simples, mas que poupa muitas dores de cabeça, já que bastantes vezes se vê pessoas a tentarem obter determinado campo da dataGrid através dela mesmo e não do seu dataProvider. Neste exemplo foram usadas alguns “truques” menos comuns para lidar com o arrayCollection.

As funções foram optimizadas ao máximo para serem reaproveitadas em qualquer outra dataGrid com o mesmo dataProvider poupando assim código desnecessário numa aplicação media-grande.

Podem ver o exemplo online aqui com o view source activo

Ou ver o código fonte aqui

Foi útil?

Abraço.

versão pdf temporariamente indisponivel.
Deixe um comentário or Deixe um Trackback

3 Comentários

  1. Leonardo
    Março 26, 2008 às 11:00 am | Permalink

    Parabens pela sua explicação!!!!!!!!!!!!!!!!!11

  2. villas
    Abril 17, 2008 às 10:23 am | Permalink

    Porque na primeira linha quando se altera algo apresenta a mensagem que o campo ou linha está vazio?

  3. Abril 17, 2008 às 11:14 am | Permalink

    Boas villas!

    Bem, isso acontece por falta de atenção minha. Tente assim:

    na função saveData() coloque dentro do if onde tem “linha>0″ coloque “linha>=0″ e o mesmo se passa na função deleteLinha(), altere também onde tem “linha>0″ e coloque “linha>=0″

    isso acontece porque o valor da linha pode ser zero (primeira linha).

    Assim deve funcionar.
    Obrigado pelo reparo!

    cumps.

Deixe um comentário

O seu email nunca será publicado ou partilhado. Campos obrigatórios estão marcados com um *

*
*