我正在通过DataGrid
属性将数据加载到我的ItemsSource
。我也有DataPager
分页。通过调用返回Grid
的WCF服务来填充List
。
public void webService_GetProductsCompleted(object sender, GetServiceReference.GetProductsCompletedEventArgs e)
{
PagedCollectionView pagingCollection = new PagedCollectionView(e.Result);
pgrProductGrids.Source = pagingCollection;
grdProductGrid.ItemsSource = pagingCollection;
}
现在我想要使用server side pagination
加载数据的新要求。我是新手学习Silverlight
,对我而言,server side paging
的概念也是全新的。所以我来到这里是为了知道server side pagination
需要什么。任何可以给我指示的好examples
,tutorials
,step-by-step guidelines
?我必须在有限的时间内完成这项任务。请指导老年人
答案 0 :(得分:0)
我通常使用以下两个选项中的一个:
1:如果您的数据按其中包含唯一值的字段进行排序/分页,请使用TOP
功能和ORDER BY
让数据库完成繁重的工作。这样,从服务器返回到页面的最小数据量。在下面的示例中,MyTable有一个唯一的字段“NAME”,是我希望数据排序的方式。我每页收到10条记录。
SELECT TOP 10 * FROM MyTable Where Name> [The last name in the previous 10 results] ORDER BY Name
如果你想使用像ROW_NUMBER()这样的窗口函数,你可以将它用于多个字段(我不知道你使用的是什么数据库,这假定是SQL Server)
2:如果不是这样,那就太难了。您需要获取所有数据并获取[最后一页*每页数]和某些迭代代码中每页的记录数之间的所有记录。 (丑陋,缓慢,大量内存,在大型数据集上无法实现。)