2010-09-24 90 views
0

我有一个silverlight应用程序,我使用MVVM方法并从oData服务中获取数据。我想要做的是使用内置的数据网格和数据传呼控制来显示和移动返回的数据。经过几个小时的研究,我觉得没有什么好的方法可以做到这一点。我认为这需要我自己编写一些自定义分页和建立分页查询。我可以找到有关PagedCollectionView的所有内容似乎表明它只适用于已经在客户端缓存的数据。因为我不想一次从oData服务中获取数千条记录,所以这是行不通的。有什么我在这里失踪?关于DataServiceCollection的事情或者让我让数据分页器自动处理构建查询的东西?OData服务和Silverlight客户端分页,我错过了什么?

回答

-2

这是一个外部OData服务,还是在您自己的服务器上?

如果在您自己的服务上,请改用RIA服务。然后,分页是微不足道的。

如果在另一台服务器上,无论如何实现RIA服务,但让服务器以分页方式获取Odata,并通过RIA服务返回linq查询。

如果您可以提供更具体的数据服务和服务器设置的详细信息,我会尝试提供具体的细节。

+0

重新-1:必须是*随机的投票权渺茫*再次...真正的开发者会提供一个评论或其他答案。耻辱。 – 2012-01-20 13:39:53

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

这篇文章是不是太大,但经过一番摆弄(删除框架,只是增加DataGridSupport为用户控件,并且使NewItemPlaceholderPosition属性自动实现)我确实有他的源代码工作。这是相当令人印象深刻的http://cid-925c2d2bb2d03c6b.office.live.com/self.aspx/Public/EuphoriaClientApp.zip