Sampson-Li
Sampson.Li学习经验总结博客 学历代表过去,能力代表现在.学习力代表未来!

分页基本是每个程序都会遇到的问题.前面已经发不过sql存储过程的通用分页.这里小弟再发一个前台页面的分页显示.有点仿百度的样子.希望高手们有好的写法给予指导

 

 1 protected DataTable dtNews ;
2
3 const int PAGE_SIZE = 7;
4
5 protected string pagestr;
6
7 protected string pagestring;
8
9 protected void Page_Load(object sender, EventArgs e)
10
11 {
12
13 string urlParam = Request["p"] ?? string.Empty;
14
15 int pageIndex;
16
17 int.TryParse(urlParam.Trim(), out pageIndex);
18
19 if (pageIndex < 1)
20
21 {
22
23 pageIndex = 1;
24
25 }

 

//这里就是调用sql分页通用存储过程的方法,我把SelectPager()方法贴出来

 1   ///<summary>
2 /// 分页 Pager
3 ///</summary>
4 ///<param name="_CID">类别</param>
5 ///<param name="_CurPageIndex">当前页面</param>
6 ///<param name="_PageSize">页面大小</param>
7 ///<param name="_OrderbyField">排序字段</param>
8 ///<param name="_Where">查询条件</param>
9 ///<returns></returns>
10 public DataTable SelectPager(string _CID, int _CurPageIndex, int _PageSize, string _OrderbyField, string _OrderType, out int doCount)
11 {
12 return SqlHelper.DbPager(
13 "B_QA_Requestion",
14 "*",
15 "Qid",
16 _OrderbyField,
17 _PageSize,
18 _CurPageIndex,
19 out doCount,
20 _OrderType,
21 "QViewstatus=1 and QRstatus=1 and QDeleteFlag=0 and QCategory='" + _CID + "'");
22 }



 

//QARequestionBLL就是存放selectPager的类

 this.dtNews = QARequestionBLL.SelectPager(pcategory, this._CurPageIndex, _pageSize, "QDatetime", "desc", out doCount);

  pagestring = GetPageStr(doCount, PAGE_SIZE, pageIndex);

   }

 //声明一下.这里面的URLTO,是我用了重定向的方法.把他提取出来一个类了,所以href里面的连接其实就是地址后面加pageindex.(要下班了,所以就不正了,回家有事.嘿嘿....)

     //总共多少也,每页多少条,第几页

    

  1     public string GetPageStr(int total, int per, int page)
2
3 {
4
5 int allpage = 0;
6
7 int next = 0;
8
9 int pre = 0;
10
11 int startcount = 0;
12
13 int endcount = 0;
14
15
16
17 if (page < 1) { page = 1; }
18
19 if (per != 0)
20
21 {
22
23 allpage = (total / per);
24
25 allpage = ((total % per) != 0 ? allpage + 1 : allpage);
26
27 allpage = (allpage == 0 ? 1 : allpage);
28
29 }
30
31 next = page + 1;
32
33 pre = page - 1;
34
35 if (startcount < 1)
36
37 {
38
39 startcount = 1;
40
41 }
42
43 if (allpage < endcount)
44
45 {
46
47 endcount = allpage;
48
49 }
50
51 if (page > allpage)
52
53 {
54
55 page = allpage;
56
57 }
58
59 if (allpage>1)
60
61 {
62
63 pagestr = "<div><span>";
64
65 pagestr += page > 1 ? "<a href=" +URLto.getNewsList(pre) + "><img src='images/default_cms/Video_list/prev.gif' alt=''/></a></span></div>" : "<font style='display:none'>上一页</font></div>";
66
67 pagestr += "<div>";
68
69 if (allpage > 10)
70
71 {
72
73 startcount = (page + 4) > allpage ? allpage - 10 : page - 4;
74
75 if (page < 10)
76
77 {
78
79
80
81 for (int i = 1; i <=10; i++)
82
83 {
84
85 pagestr += page == i ? "<span class='current'>" + i + "</span>" : "<a href=" +URLto.getNewsList(i) + ">" + i + "</a>";
86
87 }
88
89 //pagestr += "... <a href=" + Facebook.GameEN.CMS.Website.Util.URLto.getNewsList(allpage - 1) + ">" + Convert.ToString(allpage - 1) + "</a>";
90
91 pagestr += "<span class='current'>...</span><a href=" +URLto.getNewsList(allpage) + ">" + allpage + "</a>";
92
93 }
94
95 else
96
97 if (page <= allpage - 8)
98
99 {
100
101 pagestr += " <a href=" + URLto.getNewsList(1) + ">1</a><span >...</span>";
102
103 //pagestr += " <a href=" + Facebook.GameEN.CMS.Website.Util.URLto.getNewsList(2) + ">2</a>...";
104
105 for (int i = startcount; i <= startcount + 8; i++)
106
107 {
108
109 pagestr += page == i ? " <span>" + i + "</span>" : " <a href=" +URLto.getNewsList(i) + ">" + i + "</a>";
110
111 }
112
113 //pagestr += "... <a href=" + Facebook.GameEN.CMS.Website.Util.URLto.getNewsList(allpage - 1) + ">" + Convert.ToString(allpage - 1) + "</a>";
114
115 pagestr += "<span class='current'>...</span><a href=" +URLto.getNewsList(allpage) + ">" + allpage + "</a>";
116
117 }
118
119 else
120
121 {
122
123 pagestr += " <a href=" + Facebook.GameEN.CMS.Website.Util.URLto.getNewsList(1) + ">1</a><span class='current'>...</span>";
124
125 //pagestr += " <a href=" + Facebook.GameEN.CMS.Website.Util.URLto.getNewsList(2) + ">2</a>...";
126
127 for (int i = allpage - 8; i <= allpage; i++)
128
129 {
130
131 pagestr += page == i ? " <span>" + i + "</span>" : " <a href=" +URLto.getNewsList(i) + ">" + i + "</a>";
132
133 }
134
135 }
136
137
138
139 }
140
141 else
142
143 {
144
145 for (int i = 1; i <= allpage; i++)
146
147 {
148
149 pagestr += page == i ? " <span class='current'>" + i + "</span>" : " <a href=" +URLto.getNewsList(i) + ">" + i + "</a>";
150
151 }
152
153 }
154
155 pagestr += "</div><div class='next'>";
156
157 pagestr += page != allpage ? " <span><a href=" +URLto.getNewsList(next) + "><img src='images/default_cms/Video_list/next.gif' alt='' /></a></span></div>" : " <font style='display:none'>下一页</font></div>";
158
159 }
160
161 return pagestr;
162
163 }
posted on 2011-11-01 17:35  Sampson  阅读(825)  评论(0编辑  收藏  举报