O WebGrid é um helper completo para grids, fornecendo paginação de varios tipos, de forma facil e rapida, organização (sort) em qualquer coluna, e isso tudo sem a menor complicação.
E caso o visual simples nao agrade ou nao seja exatamente o necessario no sentido de visualização, ainda assim vale a pena utilizar esse helper, ja que existem grids que se adaptam a qualquer <table> com zero de configuração.
Segue o codigo:
WebGrid Grid = new WebGrid(ViewBag.Listagem,selectionFieldName: "SelectedRow", rowsPerPage:10,canPage:true); @Grid.GetHtml( columns: Grid.Columns( Grid.Column("Nome_Cidade", "Cidade", format: (item) => HttpUtility.HtmlDecode(item.Nome_Cidade)), Grid.Column("Nome_Estado","Estado", format: (item) => HttpUtility.HtmlDecode(item.Nome_Estado)), Grid.Column("Grupo_Nome","Nome do Grupo", format: (item) => HttpUtility.HtmlDecode(item.Grupo_Nome)), Grid.Column("NUsuarios","Usuarios neste Grupo"), Grid.Column("", header: "Ações", format: (item) => new HtmlString( Html.ActionLink("Editar", "EditGrupo", new { id = item.GrupoId }).ToString() " | " Html.ActionLink("Deletar", "DelGrupo", new { id = item.Usu_Gru_Cod }).ToString() ) ) ), firstText:"Primeiro", previousText:"Anterior", nextText:"Proximo", lastText:"Ultimo", mode:WebGridPagerModes.All )Aqui eu coloquei uma consulta linq na ViewBag.Listagem que contem os campos Nome_Cidade, Nome_Estado, Grupo_Nome, e uma contagem de quantos usuários estao em cada grupo, NUsuarios Em Grid.Columns, iniciei a configuração das colunas e a linkagem.
Aqui vale uma observação:
format: (item) => HttpUtility.HtmlDecode(item.Grupo_Nome)
acontece de as vezes pegarmos strings com o formato de html, mudando os acentos dai nao reconhece na programação. O HttpUtility.HtmlDecode serve exatamente para isso. Procurei muito ate achar alguma referencia a isso.
e por fim temos o
Grid.Column("", header: "Ações", format: (item) => new HtmlString(Html.ActionLink("Editar", "EditGrupo", new { id = item.GrupoId }).ToString() " | " Html.ActionLink("Deletar", "DelGrupo", new { id = item.GrupoId }).ToString())
Aqui é a coluna que eu coloquei os botões de ação para poder alterar cada registro separadamente
e por fim
firstText:"Primeiro", previousText:"Anterior", nextText:"Proximo", lastText:"Ultimo", mode:WebGridPagerModes.All
firstText => texto do link que leva ao primeira página
previousText => texto do link que leva a página anterior
nextText => texto do link que leva a proxima página
lastText => texto do link que leva a ultima página
mode => o modo de mostragem dos links de paginação
nesse exemplo foi feita uma paginação de 10 registros por página
e caso o proprio helper nao tenha sido o suficiente para ser usado devido a simplicidade ainda existem grids em jquery que deixam a grid estilizada com zero de configuração como a Flexigrid que basta adicionar o seguinte java:
$('.Grid').flexigrid();onde .Grid é a classe da WebGrid.
Espero ter ajudado.
Ate a proxima!
Nenhum comentário:
Postar um comentário