Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Galera, eu tenho um gridview que traz os campos: nome, sobrenome, email, estado, cidade e area_de_atuacao de uma tabela MySQL. Eu preciso criar um filtro de pesquisa, onde o usuario digite os valores que deseja em um formulario e ao clicar em ok, os dados mostrados no grid sejam somente aqueles que estao de acordo com sua pesquisa.
Eu tentei salvar os valores dos textBox em variaveis e colocar um where no SelectCommand do gridview, mas quando os campos estão vazios ele da erro.
Eu pensei tambem em criar uma variavel por exemplo:
Dim condicao as String =" and nome ='"+ txt_nome.text +"'"
E no codigo do SelectCommand concaterar assim:
SelectCommand="SELECT firstname, lastname, email, state, city, subcate, type, created_date FROM users where type <> 1".@condicao
Mas nao sei se posso fazer isso em asp.net :(
Alguém sabe uma forma de fazer isso?
Como usar o FilterExpression? Vai servir no meu caso?
Obrigada
Fernando, Obrigada pela ajuda. Mas eu consegui resolver de um outro jeito, ficou assim:
<span class="style1"><strong>Filtrar</strong></span>
<asp:DropDownList ID="ddlCampo" runat="server" Height="23px" Width="130px">
<asp:ListItem Value="nome">Nome</asp:ListItem>
<asp:ListItem Value="sobrenome">Sobrenome</asp:ListItem>
<asp:ListItem Value="email">Email</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" />
agora o CodeBehind:
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
Encontrei os exemplos em um tutorial espero que sirva pra alguém. Obrigada :*
>
Fernando, Obrigada pela ajuda. Mas eu consegui resolver de um outro jeito, ficou assim:
<span class="style1"><strong>Filtrar</strong></span>
<asp:DropDownList ID="ddlCampo" runat="server" Height="23px" Width="130px">
<asp:ListItem Value="nome">Nome</asp:ListItem>
<asp:ListItem Value="sobrenome">Sobrenome</asp:ListItem>
<asp:ListItem Value="email">Email</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" />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
Encontrei os exemplos em um tutorial espero que sirva pra alguém. Obrigada :*
Valeu Lívia!
Resolveu meu problema aqui!! :pinch:
1 possibilidade é você estar usando "AND".. ai só da certo se todas as condições forem verdadeiras;
tente com ou ("or").. mas pode ficar mt "genérica"..
fica mais facil c você postar a consulta e os parametros, ok?