ASP.NET Web Forms - Usando o
Controle GridView
Nota: Este artigo mostra como usar o controle GridView na versão 2.0 do .NET Framework mas é compatível com as demais versões do Visual Studio. A única alteração fica por conta da string de conexão que deve ser ajustada para usar o SQL Server LocalDb ou a instância local do seu SQL Server. Para mais artigos sobre ASP .NET veja a seção do site: Seção ASP .NET do Site Macoratti .net
Nunca foi tão fácil trabalhar com controles de exibição e acesso a fonte de dados como na verão 2.0 do ASP.NET.
Para acompanhar este artigo faça o download do Visual Web Developer (VWD) - Visual Web Developer 2005 Express Edition . (Você pode usar as versões do VS 2013 e VS 2015 Community)
Abra o VWD e crie um novo projeto dando o nome de gridview2.aspx a página padrão do site.
Vamos supor que você quer exibir em um grid os dados de uma fonte de dados.
Ao abrir a página criada no VWD teremos o seguinte :
<% @ Page Language="VB" %><! DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">< script runat="server"></ script>< html xmlns="http://www.w3.org/1999/xhtml" >< head runat="server"> <title>Usando GridVew</title></ head>< body> <form id="form1" runat="server"> <div>...........................<===== Código vai ser incluído aqui </div> </form></ body></ html>
|
Vamos incluir a seguinte linha de código que define a utilização do gridview entre as tags <div></div>.
<asp:GridView id="MyGridView" DataSourceID="MyDataSource1" Runat="Server"/>
A seguir basta definirmos a fonte de dados indicando a string de conexão e os dados que desejamos obter com a seguinte linha de código:
<asp:SqlDataSource ID="MyDataSource1" runat="server"Suponha que a fonte de dados seja um banco de dados MSDE ; que tal o famoso Northwind ? e a tabela a tabela Categories. Basta fazer o seguinte ajuste, incluindo as linhas de código na sequência:
Nota: Estou
usando a string de conexão com o MSDE instalado em minha maquina.(Use a
string de conexão válida para o seu ambiente).
Para saber como tratar o MSDE
veja o artigo: VB.NET
- Preenchendo controles via MSDE.
ConnectionString="Integrated Security=SSPI;Persist Security Info=False;Initial Catalog=Northwind;User ID=sa;password=;_
Data Source=MACORATI\VSDOTNET"
ProviderName="System.data.SqlClient"
SelectCommand="SELECT * from Categories">
</asp:SqlDataSource>
Nota : Você também pode usar as
seguintes opções de string de conexão: 1- Banco de dados SQL Server anexado : "Data Source=.\\SQLEXPRESS;AttachDbFilename=C:\\dados\\NORTHWND.MDF;Integrated Security=True; Connect Timeout=30;User Instance=True"; 2- Banco de dados SQL Server na sua instância local : "Data Source=.\sqlexpress;Initial Catalog=Northwind;Integrated Security=SSPI" |
E esta pronto ! basta executar a página no servidor do VWD e ela será exibida conforme abaixo:
![]() |
Se deseja efetuar a paginação e permitir a ordenação por colunas basta incluir os seguintes comandos na tag do GridView: AllowSorting="True" e AllowPaging="True"
A tag completa ficaria assim definida:
<
asp:GridView id="MyGridView" DataSourceID="MyDataSource1" AllowSorting="True" AllowPaging="True" Runat="Server" />Para podermos visualizar o efeito vamos alterar também a propriedade SelectCommand conforme abaixo:
SelectCommand
="SELECT ProductId, ProductName, UnitPrice From Products"A tag completa com as alterações proposta ficou assim :
<asp:SqlDataSource ID="MyDataSource1" runat="server"ConnectionString="Integrated Security=SSPI;Persist Security Info=False;Initial Catalog=Northwind;User ID=sa;password=;_
Data Source=MACORATI\VSDOTNET"
ProviderName="System.data.SqlClient"
SelectCommand="SELECT ProductId, ProductName, UnitPrice From Products">
</asp:SqlDataSource>
O resultado da execução mostra a página já com as opções para paginação e os links ativos para ordenação por coluna:
![]() |
Quer permitir a atualização e a edição dos dados do grid ? Para isto você tem fazer o seguinte :
UpdateCommand
="Update Products Set [ProductName]=@ProductName, [UnitPrice]=@UnitPrice Where [ProductId]=@ProductId"A tag completa ficaria assim definida:
<div>
<asp:GridView
id="MyGridView"
DataSourceID="MyDataSource1"
AllowSorting="True" AllowPaging="True" DataKeyNames="ProductID" AutoGenerateEditButton="True" Runat="Server"/>
ConnectionString="Integrated Security=SSPI;Persist Security Info=False;Initial Catalog=Northwind;User ID=sa;password=;Data Source=MACORATI\VSDOTNET" ProviderName="System.Data.SqlClient" SelectCommand="SELECT ProductId, ProductName, UnitPrice From Products" UpdateCommand="Update Products Set [ProductName]=@ProductName, [UnitPrice]=@UnitPrice Where [ProductId]=@ProductId"> </asp:SqlDataSource> </div> |
Observe que a UpdateCommand foi definido com uma instrução SQL Update/Set usando a cláusula Where e a chave primária ProductId.
O resultado da execução da página seria o seguinte :
![]() |
Note que a coluna ProductID não permite a edição pois não pode ser alterada devido ser a chave primária definida.
Esta faltando a opção de exclusão dos registros não é mesmo ? Para implementá-la basta definir a propriedade DeleteCommand do componente DataSource na tag SqlDataSource. Para isto defina a seguinte linha de código :
DeleteCommand
="Delete From Products Where [ProductId]=@ProductId">e na tag do GridView defina a propriedade : AutoGenerateDeleteButton="True"
A tag completa ficou assim :
<asp:SqlDataSource ID="MyDataSource1" runat="server"ConnectionString="Integrated Security=SSPI;Persist Security Info=False;Initial Catalog=Northwind;User ID=sa;password=;Data Source=MACORATI\VSDOTNET"
ProviderName="System.Data.SqlClient"
SelectCommand="SELECT ProductId, ProductName, UnitPrice From Products"
UpdateCommand="Update Products Set [ProductName]=@ProductName, [UnitPrice]=@UnitPrice Where [ProductId]=@ProductId"
DeleteCommand="Delete From Products Where [ProductId]=@ProductId">
</asp:SqlDataSource>
O resultado obtido na execução da página será:
![]() |
Viu como foi simples criar um Grid para exibir dados de um banco de dados com recurso de visualização, edição, alteração e exclusão de dados ?
O código completo da página ficou assim :
<%@ Page Language="VB" AutoEventWireup="false" CodeFile="Default.aspx.vb" Inherits="_Default" %> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" > <head runat="server"> <title>Usando DataGridView</title> </head> <body> <form id="form1" runat="server"> <div> <asp:GridView id="MyGridView" DataSourceID="MyDataSource1" AllowSorting="True" AllowPaging="True" DataKeyNames="ProductID" AutoGenerateEditButton="True" AutoGenerateDeleteButton="True" Runat="Server"/> <asp:SqlDataSource ID="MyDataSource1" runat="server" ConnectionString="Integrated Security=SSPI;Persist Security Info=False;Initial Catalog=Northwind;User ID=sa;password=;_ Data Source=MACORATI\VSDOTNET" ProviderName="System.Data.SqlClient" SelectCommand="SELECT ProductId, ProductName, UnitPrice From Products" UpdateCommand="Update Products Set [ProductName]=@ProductName, [UnitPrice]=@UnitPrice Where [ProductId]=@ProductId" DeleteCommand="Delete From Products Where [ProductId]=@ProductId"> </asp:SqlDataSource> </div> </form> </body> </html>
|
Existem muitos outros recursos que podem ser explorados , mas o objetivo do artigo foi mostrar que os componente GridView e SqlDataSource não são componentes visuais e não são renderizados no servidor permitindo que você altere suas propriedades via código.
Aguarde
mais artigos sobre as novas características da ASP.NET 2.0.
Veja os
Destaques e novidades do SUPER DVD Visual Basic (sempre atualizado) : clique
e confira !
Quer migrar para o VB .NET ?
Quer aprender C# ??
Quer aprender os conceitos da Programação Orientada a objetos ? Quer aprender o gerar relatórios com o ReportViewer no VS 2013 ? Quer aprender a criar aplicações Web Dinâmicas usando a ASP .NET MVC 5 ? |
Gostou ?
Compartilhe no Facebook
Compartilhe no Twitter
Referências:
Super DVD Vídeo Aulas - Vídeo Aula sobre VB .NET, ASP .NET e C#
ASP .NET- Usando GridView (C#) para iniciantes - Macoratti ...
ASP .NET - GridView - Enviando, Baixando e ... - Macoratti.net