Desenvolvimento - C#

Ordenando um Grid com o componente DataView

Neste artigo é utilizado C# com ASP.Net e OleDb para conexão com o banco de dados MSDE.

por Rodrigo Santiago



Bem-vindos ao meu artigo. Neste artigo estou utilizando C# com ASP.Net e OleDb para conexão com o banco de dados MSDE.

Bom, para ordenarmos um DataGrid precisamos primeiros setar algumas propriedades no componente. No meu caso, o Grid está nomeado de grdCompany. Para chamar a propriedade da grid, clique com o botão direito sobre o ela e depois selecione a opção Proprety Bilder... .

Com isso será apresentada a propriedade onde deveremos marcar a opção Allow sorting na guia General, conforme a figura abaixo:

Para o povoamento da grid estou fazendo via código e por isso as propriedades de Data Source e as outras estão ficando em branco. Estes códigos veremos mais a frente.

Agora na guia Columns localizaremos e preencheremos a propriedade Sort Expression com os nomes dos campos da Tabela/View que desejamos que tenham a opção de serem ordenados na grid. Podemos fazer isto para todos os campos se desejado, mas os campos que não possuírem essa propriedade preenchida não terá habilitada a opção de ordenação no sistema. Veja a figura abaixo:

No meu caso, desabilitei a opção Create Columns Automatically at Run Time e criei todas as colunas com Bound Column e completando as informações de Header Text, Text Field manualmente por achar que fica mais fácil de se colocar as propriedades dos campos e porque está grid é exclusiva para mostrar as informações das companhias. O campo de "código" (primeiro da lista Selected Column) foi criado com o Button Column pois será utilizar para o evento ItemCommando da Grid, mas isso é um outro artigo.

Depois de preencher todos os campos podemos clicar no botão OK e retornar para o WebForm e pedir para mostrar o code (F7) e vamos criar nossa função "GetDataView".

Para evitar a multiplicação de códigos e facilitar a manutenção criei esta função em uma classe separada e quando a chamo passo dois parâmetros que são: um DataTable e o DataGrid; e ela está retornando um DataView.

Agora chegou o grande momento de inserirmos a propriedade da Grid. Para isso voltaremos ao WebForm e após selecionar a Grid, peça propriedade e localize o evento SortCommand e clique duas vezes sobre ele conforme figura.

Quando o VS mostrar o código digitaremos o seguinte:

Notem que antes de utilizar o "GetDataView" eu utilizei um "dm" que nada mais é do que um Alias para o namespace da Classe anteriormente criada.

using dm = PPP.Business.DataManipulation;

Agora podemos rodar nossa aplicação e usufruir das facilidades implementadas.

Na coluna código, por exemplo, que não está organizada e após clicarmos sobre o título de sua coluna, nossa resposta será:

Um grid organizado pela coluna de "Código"!!!

Conclusão

Um simples recurso que podemos disponibilizar ao usuário onde sozinho poderá estar iniciando suas consultas, manipulando seus dados e se tornando mais independente. Podemos também acrescentar na aplicação um recurso que exporte o grid para um arquivo em Excel, etc.

Cada vez mais se faz necessário criar ferramentas mais enxutas e ágeis para o usuário e quanto mais recursos disponibilizarmos dentro de um mesmo ambiente, mais satisfeito ele ficará e menos utilizará a equipe de desenvolvimento que estará focada em busca de melhorias para ele mesmo e não para o suportar em erros e solicitações corriqueiros.

Rodrigo Santiago

Rodrigo Santiago