Fast Tricks: DataPager No Rows Visible

Hola amigos, tras las cientos de llamadas que hemos recibido en la centralita, aquí un nuevo artículo para desempolvar el blog, esta vez lo haré abriendo una especie de sección nueva, Fast Tricks, truquitos rápidos, y simples que nos valen para resolver problemitas concretos de forma optima y rápida.

En este caso voy a comentaros un truquito con el control DataPager, ese control mágico que nos sirve para paginar resultados en ListView’s, Grid’s, etc.. En ocasiones he visto como desde la capa de presentación se preguntaba una y otra vez por el número de resultados a paginar para mostrar o no dicho control. Pues bien, hagamos que todo esto se centralice, que sea el propio control el que diga si tiene que visualizarse o no, dependiendo del número de resultados a mostrar, así no tendremos que preguntar una y otra vez en cada una de las páginas donde lo usemos.

Para ello bastará con crearnos una clase que herede de System.Web.UI.WebControls.DataPager y sobre escribamos su método Render. En esta sobre escritura comprobaremos a través de las propiedades TotalRowCount y PageSize, si el número de filas a mostrar es mayor al número de filas que se quiere se vean por página, y dependiendo del resultado, renderizaremos o no el control.

Un ejemplo de caso práctico: si deseo que me aparezcan 5 filas por página, y solo tenemos 4 registros de datos, no mostraremos el control.

public class MyDataPager : System.Web.UI.WebControls.DataPager

    {       

        protected override void Render(HtmlTextWriter writer)

        {

            if (base.TotalRowCount > base.PageSize)

            {

                base.Render(writer);

            }

           

        }       

    }

Eh voilá, espero que este articulillo aunque básico y simplón, os sirva alguna vez J

 

3 thoughts on “Fast Tricks: DataPager No Rows Visible

Leave a Reply to anonymous Cancel reply

Your email address will not be published. Required fields are marked *