类似baidu google分页器效果的代码(修改于 kwklover 同学基础上)

 

本文首发 博客园,转载请注明出处:http://www.cnblogs.com/zhouzhaokun/archive/2011/08/24/2151558.html#

今天本来要做基于json的Ajax分页效果。一大早起来就上园子找菜来吃。。刚好看到 kwklover 同学缩写的 分页器 实现。原文地址:http://www.cnblogs.com/kwklover/archive/2006/04/21/381832.html 我在他的基础上做了些修改,但是仍然不是非常完善!代码如下:

 

先贴上分页器代码。稍后我会上传 基于json 的ajax 分页。。。高手勿喷,:-)。。。欢迎交流

//http://www.cnblogs.com/kwklover/archive/2006/04/21/381832.html  

02         protected void Page_Load(object sender, EventArgs e)  

03         {  

04             if (Request["page"] == null || Request["page"] == "")  

05                 BuildPager(10000, 1, 10);  

06             else 

07                 BuildPager(10000, Convert.ToInt32(Request["page"]), 10);  

08         }  

09         /// <summary>  

10         /// 创建并显示分页器  

11         /// </summary>  

12         /// <param name="totalRecords">总页数</param>  

13         /// <param name="currentPage">当前页码</param>  

14         /// <param name="pageSize">页面大小</param>  

15         private void BuildPager(int totalRecords, int currentPage, int pageSize)  

16         {  

17             int alter = 4;  

18             int startPage = 1;  

19             int endPage = currentPage + alter;  

20             int totalPages = this.CalculateTotalPages(totalRecords, pageSize);  

21    

22             if (currentPage > alter)  

23             {  

24                 startPage = currentPage - alter;  

25             }  

26    

27             if (endPage > totalPages)  

28             {  

29                 endPage = totalPages;  

30             }  

31    

32             string strTemp = @"<a title='{0}' href='Default.aspx?page={1}'>{2}</a>  ";  

33             StringBuilder sb = new StringBuilder("");  

34             if (currentPage != startPage)  

35             {  

36                 if (currentPage > startPage)  

37                 {  

38                     sb.Append(string.Format(strTemp, 1, 1, "首页"));  

39                     sb.Append(string.Format(strTemp, currentPage - 1, currentPage - 1, "上一页"));  

40                 }  

41             }  

42    

43             for (int i = startPage; i <= endPage; i++)  

44             {  

45                 if (currentPage == i)  

46                 {  

47                     sb.Append("<font color=red>" + i + "</font>  ");  

48                 }  

49                 else 

50                 {  

51                     sb.Append(string.Format(strTemp, i, i, "[" + i + "]"));  

52                 }  

53             }  

54    

55             if (currentPage != endPage)  

56             {  

57                 sb.Append(string.Format(strTemp, currentPage + 1, currentPage + 1, "下一页"));  

58                 sb.Append(string.Format(strTemp, totalPages, totalPages, "尾页"));  

59             }  

60    

61             this.ltlShowPager.Text = sb.ToString();  

62         }  

63    

64         /**/ 

65         /// <summary>  

66         /// 计算总页数  

67         /// </summary>  

68         /// <param name="totalRecords">总记录数</param>  

69         /// <param name="pageSize">每页记录数</param>  

70         private int CalculateTotalPages(int totalRecords, int pageSize)  

71         {  

72             int totalPagesAvailable;  

73    

74             totalPagesAvailable = totalRecords / pageSize;  

75    

76             //由于C#的整形除法 会把所有余数舍入为0,所以需要判断是否需要加1  

77             if ((totalRecords % pageSize) > 0)  

78                 totalPagesAvailable++;  

79    

80             return totalPagesAvailable;  

81         } 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值