En ocasiones tenemos gran cantidad de datos en un GridView que necesitamos paginar y mostrar un conjunto de datos en cada página.
En este post voy explicar cómo mostrar GridView con paginación. Esto lo conseguimos si la propiedad AllowPaging lo ponemos en true, esta propiedad es muy pesado y consume una gran cantidad de memoria pero aporta mucha funcionalidad, también podemos indicarle el número de filas por medio de la propiedad PageSize, para establecer el estilo de paginación utilizamos la propiedad PagerSettings-Mode.
En este post voy explicar cómo mostrar GridView con paginación. Esto lo conseguimos si la propiedad AllowPaging lo ponemos en true, esta propiedad es muy pesado y consume una gran cantidad de memoria pero aporta mucha funcionalidad, también podemos indicarle el número de filas por medio de la propiedad PageSize, para establecer el estilo de paginación utilizamos la propiedad PagerSettings-Mode.
- Si no le indicamos la propiedad PageSize la grilla tendrá 10 filas por defecto en cada página y si hay más de 10 páginas se mostrará en puntos suspensivos (..) juntos a los números.
- Si no ponemos la propiedad PagerSettings-Mode, por defecto tendrá el estilo "Numeric".
<asp:GridView runat="server" ID="gvPaginacion"
AutoGenerateColumns="true"
AllowPaging="true" PageSize="15"
OnPageIndexChanging="gvPaginacion_OnPageIndexChanging" >
</asp:GridView>
Con la propiedad AllowPaging en true ademas de mostrar los resultados en forma paginada también nos muestra el control de paginación.
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
CargarDatos();
}
}
El evento OnPageIndexChanging se ejecuta cada vez que pulsamos en uno de los link del control de paginación.
Así pues, al indicarle el número de página a mostrar, en los argumentos del evento (del tipo GridViewPageEventArgs) recibimos el índice de la página y le asignamos al PageIndex del GridView.
protected void gvPaginacion_OnPageIndexChanging(object sender,
GridViewPageEventArgs e)
{
gvPaginacion.PageIndex = e.NewPageIndex;
CargarDatos();
}
private void CargarDatos()
{
//La entidad Usuario tiene atributos como Id, Nombre, Apellido, etc.
Usuario u = new Usuario();
//El método Listar_Usuarios() simplemente obtiene los datos del usuario a través de //un select a la tabla Usuario de la BD.
DataTable dt = u.Listar_Usuarios();
if (dt != null)
{
if (dt.Rows.Count > 0)
{
gvPaginacion.DataSource = dt;
gvPaginacion.DataBind();
}
else
{
gvPaginacion.DataSource = null;
gvPaginacion.DataBind();
}
}
else
{
gvPaginacion.DataSource = null;
gvPaginacion.DataBind();
}
}
Y esto es todo, ustedes pueden probar cambiando el estilo de la propiedad PagerSettings-Mode los estilos son:
- NumericFirstLast
- Numeric
- NextPrevious
- NextPreviousFirstLast
Muchas gracias por tu aporte, es lo suficientemente claro preciso.
ResponderEliminar