- 16 Junho 2008
- Uncategorized
- 0 Comments
-
Etiquetas:.net, web, www
Usar o FilterExpression do SqlDataSrouce na GridView
16 Junho 2008 Posted By Tiago Salgado
Se quiser dar a possibilidade do utilizador filtrar os dados que está a ver na gridview, uma das formas é usar o FilterExpression do SqlDataSource ligado à gridview.
Algo do genero:
if(!string.IsNullOrEmpty(txtFiltro.Text.Trim()))
{
sqlDsTeste.FilterExpression = String.Format(“nome like ‘%{0}%’”, txtFiltro.Text);
}
else
{
sqlDsTeste.FilterExpression = “”;
}
O problema está quando o filtro retorna por exemplo um nº de resultados que seja superior ao definido para mostrar por página, fazendo com que ao mudar de página o filtro seja “esquecido” devido ao PostBack e mostre novamente todos os resultados da query no SelectCommand do SqlDataSource.
Para contornar isto usei o ViewState e adicionei após definir a FilterExpression o seguinte:
{
sqlDsTeste.FilterExpression = ViewState["filtro"].ToString();
}
Se conhecerem uma forma mais rápida e/ou correcta avisem



