对于分页,首先要明确一些高效率的策略:
1、一次获取还是每次获取一页的数据
既然考虑了分页,肯定是数据量大,大到不能一页来显示,可能会很多页,我的做法更倾向于,首先要考虑用户可能看的页数,就是说用户可能会看几页的数据,如果是三页,就一次性获取三页的数据,然后在页面前台分页,使用datapager就可以了,如果数据量超过了三页,用户点击四页后面的页码的话,就现从数据库抓取数据,每次抓取一页的数据做呈现,分页获取数据就和原来的ASP.NET一样了,分页存储过程
2. 数据库相关
重点是数据库素引排列参考
http://www.cnblogs.com/jyk/archive/2008/08/04/1260406.html
现实排列后 可以算多少项一页 那总多少页就是count总行除以每页多少项结出来的
控制分页 得到总页数 用if判断大于或者小于总页数的范围数字
下一页或者上一页传送给数据库存储过程当参数 然后where每页的项乘以(页码-1) and 每页的项乘以页码
3. 分页信息:总页数、总条数、每条多少页、当前第几页是在服务端计算的,Silverlight只是负责呈现。
4. 不考虑网速,服务器等等原因,只是单纯的想在客户端对大量数据进行分类的话,你可以看一看data pager这个控件
http://msdn.microsoft.com/en-us/library/system.windows.controls.datapager(VS.95).aspx