2011-08-09 14 views
7

Tengo una API del lado del servidor que proporciona datos paginados en formato JSON en función de varios parámetros de consulta. Me gustaría proporcionar una interfaz de usuario que permita al usuario buscar los resultados de una consulta.Silverlight: datos de paginación del servidor

Conozco los diversos componentes que permiten este tipo de interfaz, IPagedCollectionView e ICollectionView en el modelo/modelo de palanca de vista y DataPager en la interfaz de usuario. Sin embargo, todos los ejemplos que he visto implementan la búsqueda en la parte superior de los datos que ya se han cargado en el modelo o modelo de vista.

Esperaba encontrar una implementación de IPagedCollectionView en alguna parte, donde simplemente inserte su método 'fetcher' que busca una página dada de datos del servidor, además proporciona un poco de metadatos (páginas totales, etc ...)

Podría escribir esto mismo basado en las interfaces IPagedCollectionView e ICollectionView, pero me sorprendería que no haya una solución estándar para este problema.

¡Se apreciarán todos los punteros a las partes más adecuadas del marco o las bibliotecas que amplían el marco!

Respuesta

3

Tuvimos la misma pregunta y que se establecieron con el nuevo DomainCollectionView que forma parte de la WCF RIA Services SP1. ¿Cuál de los siguientes significa que debe usar los Servicios de RIA, no sé si esa es una opción.

El DomainCollectionView (que ya implementa la interfaz IPagedCollectionView deseada) viene en combinación con un DomainCollectionViewLoader que se puede utilizar para buscar los datos de la página actual.

Para mí esta entrada del blog por Kyle McCellan fue muy útil:

http://blogs.msdn.com/b/kylemc/archive/2010/12/02/introducing-an-mvvm-friendly-domaindatasource-the-domaincollectionview.aspx

[Actualización] También puede encontrar este Blog post útil:

http://weblogs.asp.net/manishdalal/archive/2009/10/01/silverlight-3-custom-sorting-with-paging-support.aspx

Es una implementación personalizada de la interfaz IPagedCollectionView. Lo usamos en un lugar donde agregamos datos de diferentes fuentes de datos y un DomainCollectionView no era aplicable.

+0

Gracias - No me opongo al uso de los Servicios de RIA si esto me proporciona algún beneficio. Echaré un vistazo a esa publicación en el blog. ¡Gracias! – ColinE

+0

¡Gracias por la actualización, parece que ese blogpost tiene exactamente lo que necesito! – ColinE

1

Puede probar los servicios de datos WCF, que pueden alimentar JSON creo. tiene una API para 'continuaciones' que son consultas efectivamente paginadas. Puede ser un poco extraño que uses esto como un contenedor, pero estoy seguro de que podrías hacerlo funcionar.

http://blogs.msdn.com/b/writingdata_services/archive/2011/02/25/getting-json-out-of-wcf-data-services.aspx

+0

Gracias por las ideas. Sin embargo, estoy escribiendo una aplicación de Silverlight del lado del cliente para una API existente del lado del servidor (que no hospedo). ¡Realmente no quiero agregar mi propio componente del lado del servidor para soportar mi aplicación! – ColinE

+0

¿Esto no es conceptualmente diferente de los servicios de RIA, que todavía está considerando? – user381624

+0

Tengo +1 su respuesta, sí, he entendido mal su respuesta. Pensé que era necesario que envuelva el servicio que estoy usando dentro de mi propio componente del servidor. – ColinE

Cuestiones relacionadas