分页

sql语句
select
*
from
(select ROW_NUMBER()over(order by 字段名) as num,* from 表名) --子查询
as
t
where t.num between @start and @end;

pageIndex:当前页面(第一页,第二页,第三页....)
pageSize:每页显示几条数据
pageCount总页数=取天花板函数(数据总条数 * 1.0/pageSize)//这里的参数需要的是小数
@start=(pageIndex-1) * pageSize+1
@end=pageIndex * pageSize

注意:
pageIndex 不能小于1 and 不能大于 pageCount总页数
--------------------------------------------
数字页码条分析
每次显示10个数字(不管显示几个数字思路是不变的 通过pageIndex来计算起始数和最终数)
3 4 5 6 7 8 9 10 11 12 pageIndex=8
5 6 7 8 9 10 11 12 13 14 pageIndex=10
7 8 9 10 11 12 13 14 14 16 pageIndex=12
显示10个数字得出的结论(显示的数字不同结论也不同)
起始数字 = pageIndex - pageIndexReduce(5)
最终数字 = 起始数字 + pageIndexAdd(9)
通过循环拼接HTML字符串
for(int i=start;i<=end;i++)

 1     /// <summary>
 2     /// 生成数字页码条
 3     /// </summary>
 4     public class PageBar
 5     {
 6         /// <summary>
 7         /// 获取数字页码条HTML字符串
 8         /// </summary>        
 9         /// <param name="pageIndex">当前页</param>
10         /// <param name="pageCount">总页数</param>
11         /// <param name="pageIndexAdd">计算最终数需要</param>
12         /// <param name="pageIndexReduce">计算起始数需要</param>
13         /// <returns>HTML字符串</returns>
14         public static string GetPageBar(int pageIndex, int pageCount,int pageIndexAdd=9,int pageIndexReduce=5)
15         {
16             //只有一页的话不需要分页
17             if (pageCount<=1)
18             {
19                 return string.Empty;
20             }
21             int startNum = pageIndex - pageIndexReduce;//起始数
22  
23             //如果起始数小于1
24             if (startNum < 1)
25             {
26                 startNum = 1;
27             }
28             int endNum = startNum + pageIndexAdd;//最终数
29  
30             //如果最终数大于总页数
31             if (endNum>pageCount)
32             {
33                 endNum = pageCount;
34                 startNum = endNum - pageIndexAdd > 1 ? endNum - pageIndexAdd : 1;
35             }
36             StringBuilder sb = new StringBuilder();
37             for (int i = startNum; i <=endNum; i++)
38             {
39                 //当前页不需要加链接
40                 if (i==pageIndex)
41                 {
42                     sb.Append(i);
43                 }
44                 else
45                 {
46                     sb.AppendFormat("<a href='?pageIndex={0}'>{0}</a>",i);
47                 }
48             }
49             return sb.ToString();
50         }
51  
52     }

 

posted @ 2016-01-17 12:01  KotobukiTsumugi  阅读(140)  评论(0)    收藏  举报