Ler todas as paginas de um gridview
Estou usando o recurso de paginação do gridview mas ao ler a coleção de linhas consigo acessar apenas as linhas da página atual. Como eu poderia acessar as linhas de todas as paginas?
Ademilso Peres
Curtidas 0
Respostas
Luiz Maia
14/04/2010
Ademilso,
Pode explicar melhor por favor? Não entendi seu problema...
Fico no aguardo...
Att
Luiz Maia
Luiz Maia
GOSTEI 0
Ademilso Peres
14/04/2010
for(int linha = 0; linha < this.GridUnidadeBasica.Rows.Count; linha++)
Este comando acessa apenas a linhas da página atual é preciso todas as linhas.
GOSTEI 0
Luiz Maia
14/04/2010
Ademilso, é simples, faz um foreach no DataTable.
foreach(DataRow dr in DataTable1.Rows)
É isto?
Aguado...
Att
Luiz Maia
GOSTEI 0
Ademilso Peres
14/04/2010
Não, não é isso, estou falando do gridview. A coleção rows está me retornando apenas as linhas da pagina que está sendo exibida eu presiso ler todas as linhas, fui claro?
GOSTEI 0
Luiz Maia
14/04/2010
Ademilso,
Não estou entendendo o que realmente precisa.
Me fale qual funcionalidade esta desenvolvendo o que esta precisando em termos de método.
Fico no aguardo
Att
Luiz Maia
GOSTEI 0
Ademilso Peres
14/04/2010
A palavra página que usei na mensagem anterior se refere a paginação do componente gridview
Meu grid exibe isto
Dados Dados Dados Dados
1 2 3 4 5 6 -> numero de paginas
Quando clico no "1" a coleção rows me retorna apenas os dados que eu estou vendo, quero poder acessar todos os dados.
GOSTEI 0
Luiz Maia
14/04/2010
So usando a fonte do DataSource para fazer isto. Pega o DataTable que vc usa no DataSource, nele tem todos os registros. Pode ser?
Em qual momento precisa destes registros? Em algum evento de clique ou pode ser num loop?
GOSTEI 0
Ademilso Peres
14/04/2010
Sim, pode ser.
GOSTEI 0
Ademilso Peres
14/04/2010
Qual é a propriedade do SqlDataSource que me retorna o datatable?
GOSTEI 0
Luiz Maia
14/04/2010
Ademilso, o metodo abaixo retorna um DataTable:
public DataTable RetornaRegistros(string produto, int categoria)
{
SqlConnection con = new SqlConnection(conexao);
StringBuilder sb = new StringBuilder();
sb.Append("SELECT ");
sb.Append(" P.COD_PRODUTO, ");
sb.Append(" D.NOM_DEPARTAMENTO, ");
sb.Append(" C.NOM_CATEGORIA, ");
sb.Append(" P.NOM_PRODUTO, ");
sb.Append(" P.VLR_PRECO ");
sb.Append("FROM ");
sb.Append(" CATEGORIA C");
sb.Append(" INNER JOIN DEPARTAMENTO D ON C.COD_DEPARTAMENTO = D.COD_DEPARTAMENTO ");
sb.Append(" INNER JOIN PRODUTO P ON C.COD_CATEGORIA = P.COD_CATEGORIA");
if (produto.Length > 0 || categoria > 0)
{
sb.Append(" WHERE ");
if (produto.Length > 0)
{
sb.Append(" P.NOM_PRODUTO LIKE '%" + produto + "%' AND ");
}
if (categoria > 0)
{
sb.Append(" C.COD_CATEGORIA = " + categoria + " AND ");
}
sb.Remove(sb.ToString().Length - 4, 4);
}
DataSet ds = new DataSet();
con.Open();
SqlDataAdapter da = new SqlDataAdapter(sb.ToString(), con);
da.Fill(ds);
con.Close();
if (ds.Tables[0].Rows.Count > 0)
{
return ds.Tables[0];
}
else
{
return null;
}
}
Aguardo seu retorno se é isto mesmo que precisa, ok?
Abraços
Att
Luiz Maia
GOSTEI 0
Ademilso Peres
14/04/2010
Mas eu quero usar o mesmo objeto datatable que o gridview usa internamente para exibir os dados, não quero refazer a pesquisa.
GOSTEI 0
Luiz Maia
14/04/2010
Pois então, é isto mesmo. So te mandei o exemplo abaixo para verificação mesmo.
Com este metodo vc pode popular o GridView e ainda um DataTable, sem problemas...
Me mande seu codigo onde popula o GridView.
Aguardo
Att
Luiz Maia
GOSTEI 0