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
Mostrando entradas con la etiqueta paginacion. Mostrar todas las entradas
Mostrando entradas con la etiqueta paginacion. Mostrar todas las entradas
miércoles, 27 de agosto de 2014
Suscribirse a:
Entradas (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 ...
-
Para aquellos que tengáis el gusanillo de la numismática, queréis empezar a coleccionar y no podéis o no queréis hacer una gran inversión en...
-
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...
-
En una consulta LINQ que no devuelve ningún resultado y utilizamos la función First() se presenta la excepcion, “InvalidOperationException:...