Para poder paginar un gridView cuyo contenido lo tenemos en una consulta SQL y ejecutada sobre un DataReader debemos de utilizar un componente compatible con IEnumerable. Por tanto directamente no es posible. Debemos usar otro objeto como por ejemplo un DataTable. Veamoslo:
private void cargarDatos(){
...
conn.Open();
SqlCommand cmd = new SqlCommand();
cmd.Connection = conn;
cmd.CommandType = CommandType.Text;
string vConsulta = "SELECT ...."
SqlDataReader rdr = cmd.ExecuteReader();
if (rdr.HasRows)
{
GridView1.DataSource = rdr;
GridView1.DataBind();
}
...
}
Este código es perfectamente válido para mostrar los resultados en el GridView.
Pero supongamos que quisieramos paginar el contenido del GridView1. Para ello debemos definir la popiedad del gridView AllowPaging = true y definir su metodo pageIndexChanging
protected void GridView1_PageIndexChanging(object sender, GridViewPageEventArgs e)
{
GridView gv = (GridView)sender;
gv.PageIndex = e.NewPageIndex;
cargarDatos();
}
Para que funcione la paginacion deberiamos cambiar la asignacion:
GridView1.DataSource = rdr;
por esta otra
DataTable dt = new DataTable();
dt.Load(rdr);
GridView1.DataSource = dt;
Datatable implementa IEnumerable y permite la paginacion correctamente
Suscribirse a:
Enviar comentarios (Atom)
Jesús Moreno - Ingeniero Ténico Informático - consultor Informático
Hola, soy Jesús Moreno Ingeniero Técnico Informático en sistemas por la US y propietario de éste blog. Mi trabajo en los ultimos años se ...
-
Ultima hora: Máxima difusión, aquí la sentencia del Tribunal Supremo sobre la Clausula Suelo . http://s01.s3c.es/imag/doc/ 2013-06-04/pg.4...
-
El ejemplo se ha probado en una base de datos Microsoft SQL Server 2008 R2 CREATE FUNCTION dbo . udf_GetNumeric (@ strAlphaNumeric VARCHA...
-
Al intentar compartir la impresora nos lanza un error que dice: " No se pudo guardar la configuración de la impresora. No hay no hay m...
No hay comentarios:
Publicar un comentario