|
O componente DataGrid permite exibir os dados em linhas e colunas, extraindo os dados de um array ou de um arquivo XML externo que pode ser inserido em uma array do DataProvider. O componente DataGrid inclui rolagem vertical e horizontal, suporte a eventos (incluindo suporte a células editáveis) e recursos de classificação.
Você pode redimensionar e personalizar características como a fonte, a cor e as bordas das colunas em uma grade. Use um clipe de filme personalizado como um renderizador de célula para qualquer coluna em uma grade. (Um renderizador de célula exibe o conteúdo de uma célula.) É possível desativar as barras de rolagem e usar os métodos DataGrid para criar uma exibição de estilo de visualização de página. Para obter mais informações sobre personalização, consulte a classe DataGridColumn na
Referência do ActionScript 3.0
para Flash Professional
.
Interação do usuário com o componente DataGrid
Você pode usar o mouse e o teclado para interagir com um componente DataGrid.
Se a propriedade
sortableColumns
e a propriedade
sortable
da coluna forem
true
, e você clicar em um cabeçalho, os dados serão classificados com base nos valores da coluna. Você pode desativar a classificação de uma coluna individual definindo sua propriedade
sortable
como
false
.
Se a propriedade
resizableColumns
for
true
, você poderá redimensionar as colunas arrastando os divisores de coluna na linha do cabeçalho.
Se você clicar em uma célula editável, o foco ficará nessa célula; se você clicar em uma célula não-editável, o focus não será afetado. Uma célula é editável quando as propriedades
DataGrid.editable
e
DataGridColumn.editable
da célula são
true
.
Para obter mais informações, consulte as classes DataGrid e DataGridColumn na
Referência do ActionScript® 3.0 para Adobe Flash® Professional CS5
.
Quando uma ocorrência de DataGrid receber o foco após um clique ou o pressionamento da tecla tab, você poderá usar as seguintes teclas para controlá-la:
|
Tecla
|
Descrição
|
|
Seta para baixo
|
Quando uma célula está sendo editada, o ponto de inserção é deslocado para o final do texto da célula. Se uma célula não for editável, a tecla de seta para baixo manipulará a seleção da mesma maneira que o componente List.
|
|
Seta para cima
|
Quando uma célula está sendo editada, o ponto de inserção é deslocado para o início do texto da célula. Se uma célula não for editável, a tecla de seta para cima manipulará a seleção da mesma maneira que o componente List.
|
|
Shift+Up/Seta para cima
|
Se a DataGrid não for editável e
allowMultipleSelection
for
true
, selecionará linhas contíguas. A reversão da direção com a seta oposta desmarca as linhas selecionadas até que você passe para a linha inicial, na qual as linhas dessa direção são selecionadas.
|
|
Shift+Click
|
Se
allowMultipleSelection
for
true
, selecionará todas as linhas entre a linhas selecionada e a posição atual do circunflexo (célula realçada).
|
|
Ctrl+Click
|
Se
allowMultipleSelection
for
true
, selecionará linhas adicionais, que não precisam ser contíguas.
|
|
Seta para direita
|
Quando uma célula está sendo editada, o ponto de inserção é deslocado um caractere para a direita. Se uma célula não for editável, a tecla de seta para direita não terá efeito nenhum.
|
|
Seta para esquerda
|
Quando uma célula está sendo editada, o ponto de inserção é deslocado um caractere para a esquerda. Se uma célula não for editável, a tecla de seta para esquerda não terá efeito nenhum.
|
|
Início
|
Seleciona a primeira linha da DataGrid.
|
|
End
|
Seleciona a última linha da DataGrid.
|
|
PageUp
|
Seleciona a primeira linha em uma página da DataGrid. Uma página consiste no número de linhas que a DataGrid pode exibir sem rolagem.
|
|
PageDown
|
Seleciona a última linha em uma página da DataGrid. Uma página consiste no número de linhas que a DataGrid pode exibir sem rolagem.
|
|
Return/Enter/Shift+Enter
|
Quando uma célula é editável, a alteração é confirmada e o ponto de inserção é movido para a célula na mesma coluna, na linha seguinte (para cima ou para baixo, dependendo da alternância do deslocamento).
|
|
Shift+Tab/Tab
|
Se a DataGrid for editável, o foco será movido para o item anterior/seguinte até que o final da coluna seja atingido, e depois para a linha anterior/seguinte até que a primeira ou última célula seja atingida. Se a primeira célula for selecionada, Shift+Tab moverá o foco para o controle anterior. Se a última célula for selecionada, a tecla Tab moverá o foco para o controle seguinte.
Se a DataGrid não for editável, o foco será movido para o controle anterior/seguinte.
|
Você pode usar o componente DataGrid como base para diversos tipos de aplicativos orientados a dados. É possível exibir facilmente uma visualização tabular dos dados, mas também é possível usar os recursos de renderizador de célula para criar partes mais sofisticadas e editáveis da interface do usuário. Estas são formas práticas de usar o componente DataGrid:
-
Um cliente de webmail
-
Páginas de resultados de pesquisa
-
Aplicativos de planilha, como calculadoras de empréstimo e aplicativos de formulário de imposto
Quando você criar um aplicativo com o componente DataGrid, ele será útil para a compreensão do design do componente List, pois a classe DataGrid estende a classe SelectableList. Para obter mais informações sobre a classe SelectableList e o componente List, consulte as classes SelectableList e List na
Referência do ActionScript® 3.0 para Adobe Flash® Professional CS5
.
Quando você adicionar um componente DataGrid a um aplicativo, poderá torná-lo acessível a um leitor de tela adicionando as seguintes linhas do código do ActionScript:
import fl.accessibility.DataGridAccImpl;
DataGridAccImpl.enableAccessibility();
A acessibilidade de um componente é ativada somente uma vez, independentemente de quantas ocorrências o componente tem. Para obter mais informações, consulte o Capítulo 18, “Criação de conteúdo acessível”, em
Uso do Flash
.
Parâmetros do componente DataGrid
Você pode definir os seguintes parâmetros de criação no Inspetor de propriedades ou no Inspetor de componentes para cada ocorrência de DataGrid:
allowMultipleSelection
,
editable
,
headerHeight
,
horizontalLineScrollSize
,
horizontalPageScrollSize
,
horizontalScrolllPolicy
,
resizableColumns
,
rowHeight
,
showHeaders
,
verticalLineScrollSize
,
verticalPageScrollSize
e
verticalScrollPolicy
. Cada um desses parâmetros tem uma propriedade ActionScript correspondente de mesmo nome. Para obter informações sobre os possíveis valores desses parâmetros, consulte a classe DataGrid na
Referência do ActionScript 3.0
para Flash Professional
.
Criar um aplicativo com o componente DataGrid
Para criar um aplicativo com o componente DataGrid, você deve primeiro descobrir o local de origem dos dados. Geralmente, os dados vêm de uma matriz, que você pode puxar para a grade definindo a propriedade
dataProvider
. Você também pode usar os métodos das classes DataGrid e DataGridColumn para adicionar dados à grade.
Use um provedor de dados local com um componente DataGrid:
Este exemplo cria a DataGrid para exibir a lista de uma equipe de beisebol. Ele define a lista em uma matriz (
aRoster
) e a atribui à propriedade
dataProvider
da DataGrid.
-
No Flash, selecione Arquivo > Novo e selecione Arquivo Flash (ActionScript 3.0).
-
Arraste o componente DataGrid do painel Componentes para o Palco.
-
No Inspetor de propriedades, digite o nome de ocorrência
aDg
.
-
Abra o painel Ações, selecione Quadro 1 na Linha do tempo principal e digite o seguinte código do ActionScript:
import fl.data.DataProvider;
bldRosterGrid(aDg);
var aRoster:Array = new Array();
aRoster = [
{Name:"Wilma Carter", Bats:"R", Throws:"R", Year:"So", Home: "Redlands, CA"},
{Name:"Sue Pennypacker", Bats:"L", Throws:"R", Year:"Fr", Home: "Athens, GA"},
{Name:"Jill Smithfield", Bats:"R", Throws:"L", Year:"Sr", Home: "Spokane, WA"},
{Name:"Shirley Goth", Bats:"R", Throws:"R", Year:"Sr", Home: "Carson, NV"},
{Name:"Jennifer Dunbar", Bats:"R", Throws:"R", Year:"Fr", Home: "Seaside, CA"},
{Name:"Patty Crawford", Bats:"L", Throws:"L", Year:"Jr", Home: "Whittier, CA"},
{Name:"Angelina Davis", Bats:"R", Throws:"R", Year:"So", Home: "Odessa, TX"},
{Name:"Maria Santiago", Bats:"L", Throws:"L", Year:"Sr", Home: "Tacoma, WA"},
{Name:"Debbie Ferguson", Bats:"R", Throws:"R", Year: "Jr", Home: "Bend, OR"},
{Name:"Karen Bronson", Bats:"R", Throws:"R", Year: "Sr", Home: "Billings, MO"},
{Name:"Sylvia Munson", Bats:"R", Throws:"R", Year: "Jr", Home: "Pasadena, CA"},
{Name:"Carla Gomez", Bats:"R", Throws:"L", Year: "Sr", Home: "Corona, CA"},
{Name:"Betty Kay", Bats:"R", Throws:"R", Year: "Fr", Home: "Palo Alto, CA"},
];
aDg.dataProvider = new DataProvider(aRoster);
aDg.rowCount = aDg.length;
function bldRosterGrid(dg:DataGrid){
dg.setSize(400, 300);
dg.columns = ["Name", "Bats", "Throws", "Year", "Home"];
dg.columns[0].width = 120;
dg.columns[1].width = 50;
dg.columns[2].width = 50;
dg.columns[3].width = 40;
dg.columns[4].width = 120;
dg.move(50,50);
};
A função
bldRosterGrid()
define o tamanho da DataGrid e define a ordem das colunas e seus respectivos tamanhos.
-
Selecione Controlar > Testar filme.
Especificação de colunas e adição de classificação para um componente DataGrid em um aplicativo
Observe que você pode clicar em qualquer cabeçalho de coluna para classificar o conteúdo da DataGrid em ordem decrescente pelos valores dessa coluna.
O exemplo a seguir usa o método
addColumn()
para adicionar instâncias de DataGridColumn a DataGrid. As colunas representam nomes de jogador e suas pontuações. O exemplo também define a propriedade
sortOptions
para especificar as opções de classificação de cada coluna:
Array.CASEINSENSITIVE
para a coluna Nome e
Array.NUMERIC
para a coluna Pontuação. Ele dimensiona a DataGrid corretamente definindo o tamanho para o número de linhas e a largura para 200.
-
No Flash, selecione Arquivo > Novo e selecione Arquivo Flash (ActionScript 3.0).
-
Arraste o componente DataGrid do painel Componentes para o Palco.
-
No Inspetor de propriedades, digite o nome de ocorrência
aDg
.
-
Abra o painel Ações, selecione Quadro 1 na Linha do tempo principal e digite o seguinte código do ActionScript:
import fl.controls.dataGridClasses.DataGridColumn;
import fl.events.DataGridEvent;
import fl.data.DataProvider;
// Create columns to enable sorting of data.
var nameDGC:DataGridColumn = new DataGridColumn("name");
nameDGC.sortOptions = Array.CASEINSENSITIVE;
var scoreDGC:DataGridColumn = new DataGridColumn("score");
scoreDGC.sortOptions = Array.NUMERIC;
aDg.addColumn(nameDGC);
aDg.addColumn(scoreDGC);
var aDP_array:Array = new Array({name:"clark", score:3135}, {name:"Bruce", score:403}, {name:"Peter", score:25})
aDg.dataProvider = new DataProvider(aDP_array);
aDg.rowCount = aDg.length;
aDg.width = 200;
-
Selecione Controlar > Testar filme.
Criar uma ocorrência de componente DataGrid usando o ActionScript
Este exemplo cria uma DataGrid usando o ActionScript e a preenche com uma matriz de nomes de jogador e pontuações.
-
Crie um novo documento Flash (ActionScript 3.0).
-
Arraste o componente DataGrid do painel Componentes para o painel Biblioteca do documento atual.
Esse procedimento adicionará o componente à biblioteca, mas ele não ficará visível no aplicativo.
-
Abra o painel Ações, selecione Quadro 1 na Linha do tempo principal e digite o seguinte código do ActionScript:
import fl.controls.DataGrid;
import fl.data.DataProvider;
var aDg:DataGrid = new DataGrid();
addChild(aDg);
aDg.columns = [ "Name", "Score" ];
aDg.setSize(140, 100);
aDg.move(10, 40);
Esse código cria a ocorrência de DataGrid e, em seguida, dimensiona e posiciona a grade.
-
Crie uma matriz, adicione dados a ela e identifique a matriz como provedor de dados da DataGrid:
var aDP_array:Array = new Array();
aDP_array.push({Name:"Clark", Score:3135});
aDP_array.push({Name:"Bruce", Score:403});
aDP_array.push({Name:"Peter", Score:25});
aDg.dataProvider = new DataProvider(aDP_array);
aDg.rowCount = aDg.length;
-
Selecione Controlar > Testar filme.
Carregar uma DataGrid com um arquivo XML
O exemplo a seguir usa a classe DataGridColumn para criar as colunas da DataGrid. Ele preenche a DataGrid passando um objeto XML como parâmetro
value
do construtor
DataProvider()
.
-
Utilize um editor de texto para criar um arquivo XML com os dados a seguir e salve-o com o nome e
team.xml
na mesma pasta onde você salvou o arquivo FLA.
<team>
<player name="Player A" avg="0.293" />
<player name="Player B" avg="0.214" />
<player name="Player C" avg="0.317" />
</team>
-
Crie um novo documento Flash (ActionScript 3.0).
-
No painel Componentes, clique duas vezes no componente DataGrid para adicioná-lo ao Palco.
-
No Inspetor de propriedades, digite o nome de ocorrência
aDg
.
-
Abra o painel Ações, selecione Quadro 1 na Linha do tempo principal e digite o seguinte código do ActionScript:
import fl.controls.dataGridClasses.DataGridColumn;
import fl.data.DataProvider;
import flash.net.*;
import flash.events.*;
var request:URLRequest = new URLRequest("team.xml");
var loader:URLLoader = new URLLoader;
loader.load(request);
loader.addEventListener(Event.COMPLETE, loaderCompleteHandler);
function loaderCompleteHandler(event:Event):void {
var teamXML:XML = new XML(loader.data);
var nameCol:DataGridColumn = new DataGridColumn("name");
nameCol.headerText = "Name";
nameCol.width = 120;
var avgCol:DataGridColumn = new DataGridColumn("avg");
avgCol.headerText = "Average";
avgCol.width = 60;
var myDP:DataProvider = new DataProvider(teamXML);
aDg.columns = [nameCol, avgCol];
aDg.width = 200;
aDg.dataProvider = myDP;
aDg.rowCount = aDg.length;
}
-
Selecione Controlar > Testar filme.
|
|
|