ASP .NET - Filtrando informações em um GridView (C#) (revisão) |
No artigo de hoje vou mostrar como podemos procurar registros e filtrar informações em um controle GridView usando a propriedade FilterParameters do SqlDataSource. |
Eu já escrevi muitos artigos sobre o controle GridView em aplicações ASP .NET e se você esta começando agora sugiro que leia os meus artigos nas referências para saber mais sobre o GridView.
Existem muitas formas de filtrar informações em uma aplicação ASP .NET, mas se você esta usando o componente GridView vinculando a um SqlDataSource essa tarefa fica muito simples usando a propriedade FilterParameters.
Este artigo explica como usar os recursos FilterExpressioon e FilterParameters do SqlDataSource para filtrar registros em um controle GridView.
Este é um artigo para iniciantes que desejam aprender uma técnica básica para filtrar informações em uma aplicação ASP .NET usando o GridView vinculado ao SqlDataSource.
É uma técnica simples e útil que pode ser usada em aplicações pessoais ou de pequeno porte em um pequeno negócio que esta usando uma aplicação ASP .NET.
Recursos usados
Definindo a fonte de dados
Você pode usar qualquer banco de dados SQL Server ou qualquer outra fonte de dados mas nesse artigo eu vou usar o banco de dados Cadastro.mdf e a tabela Contatos.
Abaixo temos a estrutura da tabela e o script para gerá-la no SQL Server Management Studio:
USE [Cadastro] GO CREATE TABLE [dbo].[Contatos]( [Id] [int] IDENTITY(1,1) NOT NULL, [Nome] [nvarchar](100) NULL, [Email] [nvarchar](150) NULL, [Sexo] [nchar](10) NULL, CONSTRAINT [PK_Contatos] PRIMARY KEY CLUSTERED ( [Id] ASC )WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY] ) ON [PRIMARY] GO
|
A string de conexão usada para esse banco de dados é : Data Source=.\sqlexpress;Initial Catalog=Cadastro;Integrated Security=True
Nota: Você pode usar o banco de dados Northwind.mdf que pode ser baixado neste link : Northwind database - Home
Criando o projeto ASP .NET no VS Community
Abra o VS Community 2015 e clique em New Project;
A seguir selecione Visual C# -> ASP .NET Web Application
Informe o nome FiltrarValores_GridView e clique no botão OK;
Selecione o template Empty e marque Web Forms;
A seguir no menu Project clique em Add New Item e selecione o template Web Form informando o nome Default.aspx:
Agora vamos incluir os seguintes controles a partir da ToolBox na página Default.aspx no modo Design:
A seguir vamos configurar o SqlDataSource para acessar a tabela Contatos do banco de dados Cadastro.mdf.
Selecione o SqlDataSource e clique no link Configure Data Source;
Selecione a conexão com o banco de dados Cadastro.mdf e clique em Next>:
Selecione a tabela Contatos. marque os campos que deseja exibir no gridview e clique em Next>:
Finalmente selecione o gridview e em Choose Data Source selecione o SqlDataSource1 que representa a nossa fonte de dados:
Neste momento temos os dados da tabela Contatos vinculados ao controle GridView. O código fonte gerado pode ser visto a seguir:
<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="Default.aspx.cs" Inherits="FiltrarValores_GridView.Default" %>
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<title></title>
</head>
<body>
<form id="form1" runat="server">
<div>
<asp:GridView ID="gdvAlunos" runat="server" AutoGenerateColumns="False" DataKeyNames="Id" DataSourceID="SqlDataSource1" Height="180px" Width="389px">
<Columns>
<asp:BoundField DataField="Id" HeaderText="Id" InsertVisible="False" ReadOnly="True" SortExpression="Id" />
<asp:BoundField DataField="Nome" HeaderText="Nome" SortExpression="Nome" />
<asp:BoundField DataField="Email" HeaderText="Email" SortExpression="Email" />
<asp:BoundField DataField="Sexo" HeaderText="Sexo" SortExpression="Sexo" />
</Columns>
</asp:GridView>
<asp:SqlDataSource ID="SqlDataSource1" runat="server"
ConnectionString="<%$ ConnectionStrings:CadastroConnectionString %>"
SelectCommand="SELECT [Id], [Nome], [Email], [Sexo] FROM [Contatos]">
</asp:SqlDataSource>
</div>
</form>
</body>
</html>
|
Neste momento vamos usar duas propriedades importantes no código no interior da tag <asp:SqlDataSource> :
Nota: Se você definir a propriedade AllowPaging como True o resultado da pesquisa se aplicará a página atual.
Neste exemplo vamos usar um controle TextBox na página para poder informar o critério para realizar o filtro das informações.
Para isso vamos incluir um controle TextBox (ID=txtFiltrar) , um controle Button(ID=btnSubmeter) e um controle Label(ID=lblmsg) na página Default.aspx conforme abaixo:
Vamos definir a FilterExpression para filtrar pelo nome usando a cláusula Like:
SelectCommand="SELECT [Id], [Nome], [Email], [Sexo] FROM [Contatos]" FilterExpression="[Nome] LIKE '%{0}%'">E definir o FilterParameters para usar um controle TextBox com o ID igual a txtFiltrar filtrando pelo campo Nome:
<
FilterParameters>O código gerado pode ser visto abaixo:
Para obter o número de linhas que atende o critério vamos usar o evento RowCreated do controle GridView onde vamos definir o seguinte código:
protected void gdvAlunos_RowCreated(object sender, GridViewRowEventArgs e)
{
if (!string.IsNullOrEmpty(txtFiltrar.Text))
{
lblmsg.InnerText = "Econtrado(s) " + gdvAlunos.Rows.Count +
" linhas que atendem o critério '" + txtFiltrar.Text + "'.";
}
}
|
Executando o projeto e definindo um texto para ser usado como critério de filtro teremos:
Aplicando o filtro iremos obter:
Pegue o projeto completo aqui : FiltrarValores_GridView.zip (sem as referências)
Respondeu Jesus: O meu reino não é deste mundo; se o meu reino fosse deste
mundo, pelejariam os meus servos, para que eu não fosse entregue aos judeus; mas
agora o meu reino não é daqui.
João 18:36
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 ? |
Gostou ?
Compartilhe no Facebook
Compartilhe no Twitter
Referências:
Super DVD Vídeo Aulas - Vídeo Aula sobre VB .NET, ASP .NET e C#
Super DVD C# - Recursos de aprendizagens e vídeo aulas para C#
Curso Fundamentos da Programação Orientada a Objetos com VB .NET
ASP .NET- Usando GridView (C#) para iniciantes - Macoratti .