我有一个silverlight应用程序,我正在使用MVVM方法并从oData服务中恢复数据。我想要做的是使用内置的数据网格和数据分页器控件来显示和移动返回的数据。经过几个小时的研究,我觉得没有好的内置方法来做到这一点。我认为这将要求我自己编写一些自定义分页并构建我的分页查询。我能找到的关于PagedCollectionView的一切似乎表明它只适用于已经缓存在客户端的数据。由于我不想一次从oData服务中提取数千条记录,因此无效。这里有什么我想念的吗?关于DataServiceCollection或者允许我让数据分页器处理自动构建查询的东西是什么?
答案 0 :(得分:0)
这是一个自定义实现,它修改OData查询以支持分页http://blogs.msdn.com/b/phaniraj/archive/2010/08/19/implementing-server-side-sorting-paging-for-odata-feeds-in-silverlight-controls-datagrid-datapager-dataform.aspx
这篇文章并不太好,但经过一些摆弄(删除Frame并只添加DataGridSupport作为UserControl,并使NewItemPlaceholderPosition属性自动实现)我确实得到了他的源代码。令人印象深刻http://cid-925c2d2bb2d03c6b.office.live.com/self.aspx/Public/EuphoriaClientApp.zip
答案 1 :(得分:-2)
这是外部OData服务,还是在您自己的服务器上?
如果您自己提供服务,请改用RIA服务。然后分页是微不足道的。
如果在另一台服务器上,无论如何都要实现RIA服务,但让你的服务器以分页的方式获取Odata,并通过RIA服务linq查询返回。
如果您可以提供有关数据服务和服务器设置的更多具体细节,我将尝试提供具体的详细信息。