2011-08-09 55 views
7

我有一個服務器端API,它提供基於各種查詢參數的JSON格式的分頁數據。我想提供一個UI,允許用戶通過查詢結果分頁。Silverlight:從服務器分頁數據

我知道在模型/視圖模型槓桿和UI中的DataPager允許這種接口,IPagedCollectionView和ICollectionView的各種組件部分。然而,我所見過的所有例子都是在已經加載到模型或視圖模型中的數據之上實現分頁。

我希望找到一個IPagedCollectionView實現的地方,在這裏你簡單地插入你的'fetcher'方法,從服務器獲取給定頁面的數據,並提供一些元數據(總頁數等)。

我可以基於IPagedCollectionView和ICollectionView接口自己編寫此代碼,但如果沒有針對此問題的標準解決方案,我會感到驚訝。

任何指向擴展框架的框架或庫的更合適的部分的指針將不勝感激!

回答

3

我們有同樣的問題,我們與新DomainCollectionView這是WCF RIA服務SP1的一部分解決。 哪種方式意味着你必須使用RIA服務,不知道這是否是一種選擇。

DomainCollectionView(已實現所需的IPagedCollectionView接口)與DomainCollectionViewLoader結合使用,可用於獲取當前頁面的數據。

對於我這個博客帖子由凱爾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不適用的地方。

+0

謝謝 - 我不反對使用RIA服務,如果它給我一些好處。我會看看那篇博文。謝謝! – ColinE

+0

感謝您的更新,看起來像那篇博文有我所需要的! – ColinE

1

你可以嘗試WCF數據服務,它可以餵我相信JSON。它有一個「延續」API,這是有效的分頁查詢。你可能會覺得有點奇怪,你可以使用它作爲包裝,但我相信你可以使它工作。

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

+0

感謝您的想法。但是,我正在爲現有的服務器端API(我不託管)編寫客戶端Silverlight應用程序。我真的不想添加我自己的服務器端組件來支持我的應用程序! – ColinE

+0

這在概念上與RIA服務沒有什麼不同,您仍在考慮哪些服務? – user381624

+0

我有+1你的答案,是的,我誤解了你的回答。我認爲它需要我在我自己的服務器端組件中包裝我使用的服務。 – ColinE