【twfx118 】Asp.net分頁控制元件
建立一個使用者控制元件:Pager.ascx,然後後臺程式碼修改為:
1public partial class Pager : System.Web.UI.UserControl
2 {
3 private string _UrlFormat;
4 private int _PageSize = 10;
5 private int _RecordCount;
6 private int _PageCount = 5;
7
8 ///
9 /// 連線格式
10 ///
11 public string UrlFormat
12 {
13 get
14 {
15 return _UrlFormat;
16 }
17 set
18 {
19 _UrlFormat = value;
20 }
21 }
22
23 ///
24 /// 頁長度
25
26
27 ///
28 public int PageSize
29 {
30 get
31 {
32 return _PageSize;
33 }
34 set
35 {
36 _PageSize = value;
37 }
38 }
39
40 ///
41 /// 當前頁碼
42 ///
43 public int PageIndex
44 {
45 get
46 {
47 string Pageindex = HttpContext.Current.Request.QueryString["i"];
48 if (Pageindex != null)
49 {
50 return int.Parse(Pageindex);
51 }
52 return 1;
53 }
54 }
55
56 ///
57 /// 總記錄數
58 ///
59 public int RecordCount
60 {
61 get
62 {
63 return _RecordCount;
64 }
65 set
66 {
67 _RecordCount = value;
68 }
69 }
70
71 ///
72 /// 兩邊顯示個數
73 ///
74 public int PageCount
75 {
76 get
77 {
78 return _PageCount;
79 }
80 set
81 {
82 _PageCount = value;
83 }
84 }
85
86 protected override void Render(HtmlTextWriter writer)
87 {
88 if (RecordCount == 0)
89 return;
90 int SumPage = (RecordCount + PageSize - 1) / PageSize;
91
92 int start = PageIndex - PageCount;
93 int end = PageIndex + PageCount;
94
95 //以PageIndex為中心,前後個顯示Page個頁碼導航
96
97
98 if (SumPage > (PageCount * 2 + 1))
99 {
100 if (start < 1)
101 {
102 start = 1;
103 end = start + 10;
104 }
105 else if (end > SumPage)
106 {
107 start = SumPage - 10;
108 end = SumPage;
109 }
110 }
111 else
112 {
113 start = 1;
114 end = SumPage;
115 }
116
117
118
119 string tmp = "[{0}]";
120 StringBuilder sb = new StringBuilder(string.Format("頁次:{0}/{1} 每頁:{2} 共計:{3} 條 ", PageIndex, SumPage, PageSize, RecordCount));
121 if (PageIndex > 1)
122 {
123 sb.Append(string.Format("首頁 ", 1));
124 sb.Append(string.Format(" 上一頁 ", PageIndex - 1));
125 }
126 for (int i = start; i <= end; i++)
127 {
128 if (i == PageIndex)
129 {
130 sb.Append(" " + PageIndex.ToString() + " ");
131 }
132 else
133 {
134 sb.Append(string.Format(tmp, i));
135 }
136 sb.Append(" ");
137 }
138 if (PageIndex < SumPage)
139 {
140 sb.Append(string.Format(" 下一頁 ", PageIndex + 1));
141 sb.Append(string.Format(" 尾頁", SumPage));
142 }
143 writer.Write(sb.ToString());
144 }
145 protected void Page_Load(object sender, EventArgs e)
146 {
147
148 }
149 }使用方法:
2 {
3 private string _UrlFormat;
4 private int _PageSize = 10;
5 private int _RecordCount;
6 private int _PageCount = 5;
7
8 ///
9 /// 連線格式
10 ///
11 public string UrlFormat
12 {
13 get
14 {
15 return _UrlFormat;
16 }
17 set
18 {
19 _UrlFormat = value;
20 }
21 }
22
23 ///
24 /// 頁長度
25
26
27 ///
28 public int PageSize
29 {
30 get
31 {
32 return _PageSize;
33 }
34 set
35 {
36 _PageSize = value;
37 }
38 }
39
40 ///
41 /// 當前頁碼
42 ///
43 public int PageIndex
44 {
45 get
46 {
47 string Pageindex = HttpContext.Current.Request.QueryString["i"];
48 if (Pageindex != null)
49 {
50 return int.Parse(Pageindex);
51 }
52 return 1;
53 }
54 }
55
56 ///
57 /// 總記錄數
58 ///
59 public int RecordCount
60 {
61 get
62 {
63 return _RecordCount;
64 }
65 set
66 {
67 _RecordCount = value;
68 }
69 }
70
71 ///
72 /// 兩邊顯示個數
73 ///
74 public int PageCount
75 {
76 get
77 {
78 return _PageCount;
79 }
80 set
81 {
82 _PageCount = value;
83 }
84 }
85
86 protected override void Render(HtmlTextWriter writer)
87 {
88 if (RecordCount == 0)
89 return;
90 int SumPage = (RecordCount + PageSize - 1) / PageSize;
91
92 int start = PageIndex - PageCount;
93 int end = PageIndex + PageCount;
94
95 //以PageIndex為中心,前後個顯示Page個頁碼導航
96
97
98 if (SumPage > (PageCount * 2 + 1))
99 {
100 if (start < 1)
101 {
102 start = 1;
103 end = start + 10;
104 }
105 else if (end > SumPage)
106 {
107 start = SumPage - 10;
108 end = SumPage;
109 }
110 }
111 else
112 {
113 start = 1;
114 end = SumPage;
115 }
116
117
118
119 string tmp = "[{0}]";
120 StringBuilder sb = new StringBuilder(string.Format("頁次:{0}/{1} 每頁:{2} 共計:{3} 條 ", PageIndex, SumPage, PageSize, RecordCount));
121 if (PageIndex > 1)
122 {
123 sb.Append(string.Format("首頁 ", 1));
124 sb.Append(string.Format(" 上一頁 ", PageIndex - 1));
125 }
126 for (int i = start; i <= end; i++)
127 {
128 if (i == PageIndex)
129 {
130 sb.Append(" " + PageIndex.ToString() + " ");
131 }
132 else
133 {
134 sb.Append(string.Format(tmp, i));
135 }
136 sb.Append(" ");
137 }
138 if (PageIndex < SumPage)
139 {
140 sb.Append(string.Format(" 下一頁 ", PageIndex + 1));
141 sb.Append(string.Format(" 尾頁", SumPage));
142 }
143 writer.Write(sb.ToString());
144 }
145 protected void Page_Load(object sender, EventArgs e)
146 {
147
148 }
149 }使用方法:
把Pager拖拽到頁面上,進入頁面後臺程式碼,設定如下:
1 Pager1.UrlFormat = "?i={0}";//分頁格式
2 int recordcount, pagecount;
3 Repeater1.DataSource = 資料來源;
4 Repeater1.DataBind();
5 Pager1.RecordCount = recordcount;
6
2 int recordcount, pagecount;
3 Repeater1.DataSource = 資料來源;
4 Repeater1.DataBind();
5 Pager1.RecordCount = recordcount;
6
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/12639172/viewspace-407072/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- asp.net自制分頁頁碼條控制元件ASP.NET控制元件
- asp.net DataList控制元件分頁程式碼ASP.NET控制元件
- ASP.NET中Repeater控制元件實現分頁功能ASP.NET控制元件
- asp.net分頁控制元件AspNetPager的使用,使用傳統分頁和儲存過程分頁ASP.NET控制元件儲存過程
- asp.net mvc簡單實現基於Razor的分頁控制元件ASP.NETMVC控制元件
- 自定義分頁控制元件控制元件
- asp.net core mvc 分頁ASP.NETMVC
- asp.net 簡單分頁列印ASP.NET
- asp.net 內容頁訪問母版頁中的控制元件ASP.NET控制元件
- Flutter 分頁功能表格控制元件Flutter控制元件
- AspNetPager分頁控制元件的使用控制元件
- Repeater控制元件的分頁實現控制元件
- ASP.NET效能優化-頁面及控制元件ASP.NET優化控制元件
- Asp.Net分頁生成頁碼超連結方法ASP.NET
- asp.net mvc easyui datagrid分頁ASP.NETMVCUI
- asp.net中分頁控制元件AspNetPager美化樣式ASP.NET控制元件
- 分頁控制元件及儲存過程控制元件儲存過程
- ASP.net中的幾種分頁方法ASP.NET
- 一個比較好用的分頁控制元件控制元件
- QT分頁控制元件,開源,供大家使用QT控制元件
- DataList控制元件也玩分頁-轉貼 (轉)控制元件
- ASP.NET MVC 4使用PagedList.Mvc分頁ASP.NETMVC
- 在repeater、datalist控制元件中使用分頁功能 (轉)控制元件
- SAP UI5 列表控制元件分頁顯示資料時,如何自定義分頁大小UI控制元件
- asp.net利用儲存過程分頁程式碼ASP.NET儲存過程
- asp.net RadGrid分頁功能擴充套件DemoASP.NET套件
- ASP.NET:使用Flurl製作可複用的分頁元件ASP.NET元件
- 淺述asp.net海量分頁資料儲存過程ASP.NET儲存過程
- asp.net分頁的SQL語句及儲存過程ASP.NETSQL儲存過程
- 資料採集,微軟控制元件分頁問題的處理微軟控制元件
- 快速建立非控制元件分頁(ASP3.0方式) (轉)控制元件
- mysql分頁-limit offset分頁MySqlMIT
- 學習ASP.NET Core(08)-過濾搜尋與分頁排序ASP.NET排序
- asp.net SQL Server 儲存過程分頁及程式碼呼叫ASP.NETSQLServer儲存過程
- ASP.NET中自定義DataGrid分頁設定的實現ASP.NET
- 網頁控制元件OCX網頁控制元件
- asp.net 在使用母版頁的子頁面cs後臺程式碼中控制母版頁中的登入控制元件顯示ASP.NET控制元件
- 新ASP.NET圖表控制元件ASP.NET控制元件