Silverlight:从服务器分页数据

时间:2011-08-09 07:10:28

标签: silverlight pagination pagedcollectionview

我有一个服务器端API,它根据各种查询参数提供JSON格式的分页数据。我想提供一个允许用户分页查询结果的UI。

我知道允许这种接口的各种组件部件,模型/视图模型杠杆上的IPagedCollectionView和ICollectionView以及UI中的DataPager。但是,我看到的所有示例都在已经加载到模型或视图模型中的数据之上实现了分页。

我希望在某处找到一个IPagedCollectionView实现,您可以在其中简单地插入从服务器获取给定页面数据的'fetcher'方法,并提供一些元数据(总页面等...)

我可以根据IPagedCollectionView和ICollectionView接口自行编写,但如果没有这个问题的标准解决方案,我会感到惊讶。

任何指向框架的更合适部分的指针或扩展框架的库都将受到赞赏!

2 个答案:

答案 0 :(得分:3)

我们遇到了同样的问题,我们选择了新的DomainCollectionView,它是WCF RIA Services SP1的一部分。 哪一个意味着你必须使用RIA服务,不知道这是否是一个选项。

DomainCollectionView(已实现所需的IPagedCollectionView接口)与DomainCollectionViewLoader结合使用,可用于获取当前页面的数据。

对我而言,Kyle McCellan撰写的这篇博文非常有帮助:

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

[更新] 您可能还会发现此博客文章有用:

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

它是IPagedCollectionView接口的自定义实现。我们在一个聚合来自不同数据源的数据的地方使用它,并且DomainCollectionView不适用。

答案 1 :(得分:1)

您可以尝试WCF数据服务,我相信可以提供json。它有一个“延续”的api,它是有效的分页查询。使用它作为包装器可能会觉得有点奇怪,但我相信你可以使它工作。

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