Pregunta

Tengo un ListView que estoy enlazando a una colección de objetos algo así:

int total;
List<Client> clientList = 
    clientData.GetClients(criteria, pageNum, pageSize, out total);
uxClientList.DataSource = clientList;
uxClientList.DataBind();

Donde los parámetros pageNum, pageSize y total facilitan la paginación en la capa de acceso a datos. Hasta ahora todo bien.

Ahora puedo lanzar un DataPager en la página, apuntarlo a ListView y obtener una UX de paginación decente. Hay un poco más cuando se vincula programáticamente en lugar de declarativamente con un control de fuente de datos , pero el problema aquí es que DataPager espera que se recupere todo el conjunto de resultados cada vez, a partir del cual debe calcular paginación, por lo que ve la única página de resultados devuelta como el total de registros disponibles y se muestra como si solo hubiera una página de resultados disponible. En otras palabras, el escenario anterior funciona bien con DataPager si cambiamos a una versión de GetClients sin paginación:

List<Client> clientList = clientData.GetClients(criteria);
uxClientList.DataSource = clientList;
uxClientList.DataBind();

Obviamente, dado que nuestra capa de acceso a datos es lo suficientemente amable como para proporcionarnos un método para recuperar una página a la vez, esto sería preferible a recuperar todos los registros cada vez. Sería bueno si pudiéramos informar explícitamente a DataPager del total de registros disponibles para que todavía pueda crear automáticamente la salida de paginación, pero solo requiere una página a la vez para hacerlo.

No he encontrado una manera fácil de hacer esto y no he encontrado nada en las búsquedas. Es cierto que actualmente no poseo una comprensión profunda de la implementación de DataPager, por lo que espero pasar por alto algo.

¿Fue útil?

Solución

No has pasado por alto nada.

Cuando se trata de grandes conjuntos de resultados, debe desactivar la paginación y agregar sus propios controles de paginación.

En mi experiencia < < < > > > satisfacer. Nadie pasa la tercera página de todos modos.

Otros consejos

Eche un vistazo a ListViewPagedDataSource y su AllowServerPaging , creo que puede ser lo que estás buscando ...

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top