Esse post não será mais atualizado nesse blog. Para visualizar esse post em seu novo endereço, acesse:
http://milaneze.com.br/post/2011/04/24/TreeGrid-Parte-2-ASPNET.aspx
No post anterior eu mostrei como deve ser o HTML retornado para o cliente para que o JavaScript crie a grid em árvore. Nesse post irei deixar para download três exemplos em ASP.NET para fazer essa tarefa, dependendo de como deseja-se o resultado e de como os dados estão sendo passados.
O primeiro exemplo é ideal para quando existem poucos níveis, pois obriga a criar um LinkButton para cada coluna que houver quebra. Ele também obriga a criação de uma coluna a mais informando o nível atual de quebra, que deve ser retornada do banco de dados ou então deve ser usada alguma lógica para retornar esse nível no programa. O programa do exemplo não acessa banco de dados, pois foi criada uma lista genérica com uma simulação de dados para popular o GridView.
Para o segundo exemplo não é necessário que seja retornada mais uma coluna para o nível, mas é necessário que para cada quebra de nível seja retornado NULL do banco de dados na coluna do próximo nível. Por exemplo: "NIVEL1; NIVEL2; NULL;" significa que nada será mostrado na coluna do nível 3. Outro fator é que os dados precisam ser repetidos, assim o código vai encontrar onde está a quebra quando não houver mais repetição. Por exemplo:
NIVEL1; NULL; NULL;
NIVEL1; NIVEL2; NULL;
NIVEL1; NIVEL2; NIVEL3;
O terceiro exemplo é igual no código de tratamento do GridView, porém a lógica de criar uma linha a mais com a coluna NULL fica por conta do .NET e não da mais da query.
Para o segundo e o terceiro exemplo, é usado o banco de dados Northwind. É necessário alterar a ConnectionString no web.config para o servidor correto. As queries estão na pasta Queries.
Os exemplos desse post são apenas idéias, mas existem diversas possibilidades. Eu mesmo já usei outras idéias para gerar o mesmo resultado.
Há 16 anos
