Este artigo é uma revisão de conceitos básicos para aplicações ASP .NET Web Forms, nele vamos tratar dos seguintes assuntos:
- Vincular dados em um controle GridView usando o controle SqlDataSource;
- Filtrar dados na página ASP .NET com base em um critério selecionado pelo usuário;
Recursos usados:
- Visual Web Developer 2010 Express Edition
- SQL Server 2008 Express Edition
- Banco de dados Northwind.mdf
Abra o Visual Web Developer 2010 Express Edition e no menu File selecione New Web Site e escolha o template ASP .NET Empty Web Site informando o nome Filtrar_GridView;
A seguir no menu WebSite clique em Add New Item e selecione o template Web Form e aceite o nome padrão Default.aspx e clique em Add;
A seguir abra a janela DataBase Explorer e expanda a conexão com o banco de dados Northwind.mdf;
Selecione a página Default.aspx e no modo Design selecione a tabela Customers e arraste-a para a página no descritor:
Após soltar a tabela na página será incluído um controle GridView e um controle SqlDataSource vinculando os dados da tabela ao controle:
Agora vamos incluir um controle Dropdownlist (ID=ddlCampo) , um controle TextBox(ID=txtCriterio) e um controle Button(ID=btnFiltrar) na página conforme o código abaixo:
Para isso vamos definir no controle DropDownList na propriedade Items as seguintes propriedades:
O código completo é mostrado a seguir:
<span
class="style1"><strong>Filtrar</strong></span> <asp:DropDownList ID="ddlCampo" runat="server" Height="23px" Width="130px"> <asp:ListItem Value="CompanyName">Nome Empresa</asp:ListItem> <asp:ListItem Value="ContactName">Nome Contato</asp:ListItem> <asp:ListItem Value="City">Cidade</asp:ListItem> <asp:ListItem Value="Country">Pais</asp:ListItem> </asp:DropDownList> como <asp:TextBox ID="txtCriterio" runat="server" Width="194px"></asp:TextBox> <asp:Button ID="btnFiltrar" runat="server" Text="Filtrar" Width="61px" /> |
Abaixo vemos como ficou o leiaute da página:
No evento Click do botão de comando inclua o seguinte código:
Protected Sub btnFiltrar_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles btnFiltrar.Click
Dim FilterExpression As String = String.Concat(ddlCampo.SelectedValue, " LIKE '%{0}%'")
SqlDataSource1.FilterParameters.Clear()
SqlDataSource1.FilterParameters.Add(New ControlParameter(ddlCampo.SelectedValue, "txtCriterio", "Text"))
SqlDataSource1.FilterExpression = FilterExpression
End Sub
|
Agora basta executar o web site e selecionar um campo via controle dropdownlist e definir um critério controle TextBox e clicar no botão FIltrar.
Abaixo vemos o resultado para o campo Cidade e critério igual a Sao Paulo:
A seguir definimos o campo Nome Contato e o critério Ma;
A mágica é feita pela expressão onde temos a cláusula LIKE e o coringa %;
Dim FilterExpression As String = String.Concat(ddlCampo.SelectedValue, " LIKE '%{0}%'")
O critério é defino pela linha de código abaixo onde obtemos o parâmetro a partir da caixa de texto txtCriterio:
SqlDataSource1.FilterParameters.Add(New ControlParameter(ddlCampo.SelectedValue, "txtCriterio", "Text"))
Pegue o projeto completo aqui: Filtrar_GridView.zip
Efésios 1:4 "como também nos elegeu nele antes da fundação do mundo, para sermos santos e irrepreensíveis diante dele em amor;"
Referências:
- Seção VB .NET do Site Macoratti.net
- Seção C# do site Macoratti.net
- Super DVD .NET - A sua porta de entrada na plataforma .NET
-
GridView com SqlDataSource e DetailsView - Macoratti.net
-
Controle para fonte de dados - Macoratti.net
-
ASP.NET - GridView - Macoratti.net
-
Carregar SqlDataSource em um DataTable