服务器端分页

时间:2016-01-26 07:47:49

标签: c# silverlight datagrid pagination server-side

我正在通过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需要什么。任何可以给我指示的好examplestutorialsstep-by-step guidelines?我必须在有限的时间内完成这项任务。请指导老年人

1 个答案:

答案 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:如果不是这样,那就太难了。您需要获取所有数据并获取[最后一页*每页数]和某些迭代代码中每页的记录数之间的所有记录。 (丑陋,缓慢,大量内存,在大型数据集上无法实现。)