分页控件1
1using System;
2using System.Web.UI;
3using System.Web.UI.WebControls;
4using System.ComponentModel;
5using System.Drawing;
6
7namespace DataPage
8{
9 public enum Position{ Front, Back}
10 /**//// <summary>
11 /// WebDataPage 的摘要说明。
12 /// </summary>
13 [DefaultProperty("Text"),
14 ToolboxData("<{0}:WebDataPage runat=server></{0}:WebDataPage>")]
15 public class WebDataPage : System.Web.UI.WebControls.WebControl,INamingContainer
16 {
17 Function#region Function
18
19 GetInt#region GetInt
20 private int GetInt(object obj)
21 {
22 int iReturn = 0;
23 if( obj != null )
24 {
25 iReturn = (int)obj;
26 }
27 return iReturn;
28 }
29 #endregion
30
31 GetString#region GetString
32 private string GetString(string strValue)
33 {
34 return strValue;
35 }
36 private string GetString(object obj)
37 {
38 if( obj == null )
39 {
40 return "";
41 }
42 else
43 {
44 return obj.ToString();
45 }
46 }
47 #endregion
48
49 GetBoolean#region GetBoolean
50 private bool GetBoolean(object obj)
51 {
52 if( obj != null )
53 {
54 return (bool)obj;
55 }
56 else
57 {
58 return true;
59 }
60 }
61 #endregion
62
63 SetDropDownListValue#region SetDropDownListValue
64 private void SetDropDownListValue(DropDownList ddl, int iValue)
65 {
66 if( ddl != null )
67 {
68 for(int i=1; i<= iValue; i++)
69 {
70 ListItem lst = new ListItem();
71 lst.Value = i.ToString();
72 lst.Text = "第" + i.ToString() + "页";
73 ddl.Items.Add( lst );
74 }
75 }
76 }
77 #endregion
78
79 #endregion
80
81 页码#region 页码
82
83 PageCount 获取或设置总页数#region PageCount 获取或设置总页数
84 /**//// <summary>
85 /// 获取或设置总页数
86 /// </summary>
87 public int PageCount
88 {
89 get
90 {
91 if( PageSize == 0)
92 {
93 ViewState[ "PageCount" ] = 0;
94 }
95 else
96 {
97 if( RecordCount % PageSize > 0 )
98 {
99 ViewState[ "PageCount" ] = RecordCount / PageSize + 1;
100 }
101 else
102 {
103 ViewState[ "PageCount" ] = RecordCount / PageSize;
104 }
105 }
106 return GetInt( ViewState[ "PageCount" ] );
107 }
108 set
109 {
110 ViewState[ "PageCount" ] = value;
111 }
112 }
113 #endregion
114
115 RecordCount 获取或设置记录总数#region RecordCount 获取或设置记录总数
116 /**//// <summary>
117 /// 获取或设置记录总数
118 /// </summary>
119 public int RecordCount
120 {
121 get
122 {
123 return GetInt( ViewState[ "RecordCount" ] );
124 }
125 set
126 {
127 ViewState[ "RecordCount" ] = value;
128 }
129 }
130 #endregion
131
132 PageSize 设置每页显示的记录数#region PageSize 设置每页显示的记录数
133 /**//// <summary>
134 /// 设置每页显示的记录数
135 /// </summary>
136 public int PageSize
137 {
138 get
139 {
140 return GetInt( ViewState[ "PageSize" ] );
141 }
142 set
143 {
144 ViewState[ "PageSize" ] = value;
145 }
146 }
147 #endregion
148
149 CurrentPageIndex 获取或设置当前页#region CurrentPageIndex 获取或设置当前页
150 /**//// <summary>
151 /// 获取或设置当前页
152 /// </summary>
153 public int CurrentPageIndex
154 {
155 get
156 {
157 return GetInt( ViewState[ "CurrentPageIndex" ] );
158 }
159 set
160 {
161 ViewState[ "CurrentPageIndex" ] = value;
162 }
163 }
164 #endregion
165
166 #endregion
167
168 信息是否显示#region 信息是否显示
169
170 RecordCountIsVisible 总共N条记录是否显示#region RecordCountIsVisible 总共N条记录是否显示
171 /**//// <summary>
172 /// 总共N条记录是否显示
173 /// </summary>
174 public bool RecordCountIsVisible
175 {
176 get
177 {
178 return GetBoolean( ViewState[ "RecordCountIsVisible" ] );
179 }
180 set
181 {
182 ViewState[ "RecordCountIsVisible" ] = value;
183 }
184 }
185 #endregion
186
187 PageCountIsVisible 共N页是否显示#region PageCountIsVisible 共N页是否显示
188 /**//// <summary>
189 /// 共N页是否显示
190 /// </summary>
191 public bool PageCountIsVisible
192 {
193 get
194 {
195 return GetBoolean( ViewState[ "PageCountIsVisible" ] );
196 }
197 set
198 {
199 ViewState[ "PageCountIsVisible" ] = value;
200 }
201 }
202 #endregion
203
204 CurrentPageIndexIsVisible 第N页是否显示#region CurrentPageIndexIsVisible 第N页是否显示
205 /**//// <summary>
206 /// 第N页是否显示
207 /// </summary>
208 public bool CurrentPageIndexIsVisible
209 {
210 get
211 {
212 return GetBoolean( ViewState[ "CurrentPageIndexIsVisible" ] );
213 }
214 set
215 {
216 ViewState[ "CurrentPageIndexIsVisible" ] = value;
217 }
218 }
219 #endregion
220
221 FirstPageIsVisible 首页是否显示#region FirstPageIsVisible 首页是否显示
222 /**//// <summary>
223 /// 首页是否显示
224 /// </summary>
225 public bool FirstPageIsVisible
226 {
227 get
228 {
229 return GetBoolean( ViewState[ "FirstPageIsVisible" ] );
230 }
231 set
232 {
233 ViewState[ "FirstPageIsVisible" ] = value;
234 }
235 }
236 #endregion
237
238 PrevPageIsVisible 上一页是否显示#region PrevPageIsVisible 上一页是否显示
239 /**//// <summary>
240 /// 上一页是否显示
241 /// </summary>
242 public bool PrevPageIsVisible
243 {
244 get
245 {
246 return GetBoolean( ViewState[ "PrevPageIsVisible" ] );
247 }
248 set
249 {
250 ViewState[ "PrevPageIsVisible" ] = value;
251 }
252 }
253 #endregion
254
255 NextPageIsVisible 下一页是否显示#region NextPageIsVisible 下一页是否显示
256 /**//// <summary>
257 /// 下一页是否显示
258 /// </summary>
259 public bool NextPageIsVisible
260 {
261 get
262 {
263 return GetBoolean( ViewState[ "NextPageIsVisible" ] );
264 }
265 set
266 {
267 ViewState[ "NextPageIsVisible" ] = value;
268 }
269 }
270 #endregion
271
272 LastPageIsVisible 最后一页是否显示#region LastPageIsVisible 最后一页是否显示
273 /**//// <summary>
274 /// 最后一页是否显示
275 /// </summary>
276 public bool LastPageIsVisible
277 {
278 get
279 {
280 return GetBoolean( ViewState[ "LastPageIsVisible" ] );
281 }
282 set
283 {
284 ViewState[ "LastPageIsVisible" ] = value;
285 }
286 }
287 #endregion
288
289 SelectPageIsVisible 下拉列表框是否显示#region SelectPageIsVisible 下拉列表框是否显示
290 /**//// <summary>
291 /// 下拉列表框是否显示
292 /// </summary>
293 public bool SelectPageIsVisible
294 {
295 get
296 {
297 return GetBoolean( ViewState[ "SelectPageIsVisible" ] );
298 }
299 set
300 {
301 ViewState[ "SelectPageIsVisible" ] = value;
302 }
303 }
304 #endregion
305
306 #endregion
307
308 文本内容#region 文本内容
309
310 FirstPageText 首页文本内容#region FirstPageText 首页文本内容
311 /**//// <summary>
312 /// 首页文本内容
313 /// </summary>
314 public string FirstPageText
315 {
316 get
317 {
318 return GetString( ViewState[ "FirstPageText" ] );
319 }
320 set
321 {
322 ViewState[ "FirstPageText" ] = value;
323 }
324 }
325 #endregion
326
327 PrevPageText 上一页文本内容#region PrevPageText 上一页文本内容
328 /**//// <summary>
329 /// 上一页文本内容
330 /// </summary>
331 public string PrevPageText
332 {
333 get
334 {
335 return GetString( ViewState[ "PrevPageText" ] );
336 }
337 set
338 {
339 ViewState[ "PrevPageText" ] = value;
340 }
341 }
342 #endregion
343
344 NextPageText 下一页文本内容#region NextPageText 下一页文本内容
345 /**//// <summary>
346 /// 下一页文本内容
347 /// </summary>
348 public string NextPageText
349 {
350 get
351 {
352 return GetString( ViewState[ "NextPageText" ] );
353 }
354 set
355 {
356 ViewState[ "NextPageText" ] = value;
357 }
358 }
359 #endregion
360
361 LastPageText 最后一页文本内容#region LastPageText 最后一页文本内容
362 /**//// <summary>
363 /// 最后一页文本内容
364 /// </summary>
365 public string LastPageText
366 {
367 get
368 {
369 return GetString( ViewState[ "LastPageText" ] );
370 }
371 set
372 {
373 ViewState[ "LastPageText" ] = value;
374 }
375 }
376 #endregion
377
378 #endregion
379
380 获取或设置下拉列表框的位置#region 获取或设置下拉列表框的位置
381 public Position SelectPosition
382 {
383 get
384 {
385 if( ViewState["SelectPosition"] == null )
386 {
387 return Position.Back;
388 }
389 else
390 {
391 return (Position)ViewState["SelectPosition"];
392 }
393 }
394 set
395 {
396 ViewState["SelectPosition"] = value;
397 }
398 }
399 #endregion
400
401
402 CreateChildControls#region CreateChildControls
403 protected override void CreateChildControls()
404 {
405 this.Controls.Clear();
406 //Tanle
407 Table tb = new Table();
408 tb.ID = "tb";
409 this.Controls.Add( tb );
410 tb.Width = Unit.Percentage(100);
411
412 //tr
413 TableRow row = new TableRow();
414 row.ID = "row";
415 tb.Rows.Add( row );
416
417 总共N条记录#region 总共N条记录
418 TableCell cellRecordCount = new TableCell();
419 cellRecordCount.ID = "cellRecordCount";
420 row.Cells.Add( cellRecordCount );
421 cellRecordCount.VerticalAlign = VerticalAlign.Middle;
422 cellRecordCount.HorizontalAlign = HorizontalAlign.Center;
423 if( RecordCountIsVisible )
424 {
425 LiteralControl lcRecordCount = new LiteralControl();
426 lcRecordCount.ID = "lcRecordCount";
427 cellRecordCount.Controls.Add( lcRecordCount );
428 lcRecordCount.Text = "总共 " + RecordCount.ToString() + " 条记录";
429 }
430 #endregion
431
432 共N页#region 共N页
433 TableCell cellPageCount = new TableCell();
434 cellPageCount.ID = "cellPageCount";
435 row.Cells.Add( cellPageCount );
436 cellPageCount.VerticalAlign = VerticalAlign.Middle;
437 cellPageCount.HorizontalAlign = HorizontalAlign.Center;
438 if( PageCountIsVisible )
439 {
440 LiteralControl lcPageCount = new LiteralControl();
441 lcPageCount.ID = "lcPageCount";
442 cellPageCount.Controls.Add( lcPageCount );
443 lcPageCount.Text = "共 " + PageCount.ToString() + " 页";
444 }
445 #endregion
446
447 第N页#region 第N页
448 TableCell cellCurrentPageIndex = new TableCell();
449 cellCurrentPageIndex.ID = "cellCurrentPageIndex";
450 row.Cells.Add( cellCurrentPageIndex );
451 cellCurrentPageIndex.VerticalAlign = VerticalAlign.Middle;
452 cellCurrentPageIndex.HorizontalAlign = HorizontalAlign.Center;
453 if( CurrentPageIndexIsVisible )
454 {
455 LiteralControl lcCurrentPageIndex = new LiteralControl();
456 lcCurrentPageIndex.ID = "lcCurrentPageIndex";
457 cellCurrentPageIndex.Controls.Add( lcCurrentPageIndex );
458 lcCurrentPageIndex.Text = "第 " + CurrentPageIndex.ToString() + " 页";
459 }
460 #endregion
461
462 首页#region 首页
463 TableCell cellFirstPage = new TableCell();
464 cellFirstPage.ID = "cellFirstPage";
465 row.Cells.Add( cellFirstPage );
466 cellFirstPage.VerticalAlign = VerticalAlign.Middle;
467 cellFirstPage.HorizontalAlign = HorizontalAlign.Center;
468 if( FirstPageIsVisible )
469 {
470 LinkButton lbtnFirstPage = new LinkButton();
471 lbtnFirstPage.ID= "lbtnFirstPage";
472 cellFirstPage.Controls.Add( lbtnFirstPage );
473 lbtnFirstPage.Click +=new EventHandler(lbtnFirstPage_Click);
474 if( FirstPageText.Length > 0 )
475 {
476 lbtnFirstPage.Text = FirstPageText;
477 }
478 else
479 {
480 lbtnFirstPage.Text = "首页";
481 }
482 }
483 #endregion
484
485 上一页#region 上一页
486 TableCell cellPrevPage = new TableCell();
487 cellPrevPage.ID = "cellPrevPage";
488 row.Cells.Add( cellPrevPage );
489 cellPrevPage.VerticalAlign = VerticalAlign.Middle;
490 cellPrevPage.HorizontalAlign = HorizontalAlign.Center;
491 if( PrevPageIsVisible )
492 {
493 LinkButton lbtnPrevPage= new LinkButton();
494 lbtnPrevPage.ID = "lbtnPrevPage";
495 cellPrevPage.Controls.Add( lbtnPrevPage );
496 lbtnPrevPage.Click +=new EventHandler(lbtnPrevPage_Click);
497 if( PrevPageText.Length > 0 )
498 {
499 lbtnPrevPage.Text = PrevPageText;
500 }
501 else
502 {
503 lbtnPrevPage.Text = "上一页";
504 }
505 }
506 #endregion
507
508 下一页#region 下一页
509 TableCell cellNextPage = new TableCell();
510 cellNextPage.ID = "cellNextPage";
511 row.Cells.Add( cellNextPage );
512 cellNextPage.VerticalAlign = VerticalAlign.Middle;
513 cellNextPage.HorizontalAlign = HorizontalAlign.Center;
514 if( NextPageIsVisible )
515 {
516 LinkButton lbtnNextPage = new LinkButton();
517 lbtnNextPage.ID= "lbtnNextPage";
518 cellNextPage.Controls.Add( lbtnNextPage );
519 lbtnNextPage.Click +=new EventHandler(lbtnNextPage_Click);
520 if( NextPageText.Length > 0 )
521 {
522 lbtnNextPage.Text = NextPageText;
523 }
524 else
525 {
526 lbtnNextPage.Text = "下一页";
527 }
528 }
529 #endregion
530
531 最后一页#region 最后一页
532 TableCell cellLastPage = new TableCell();
533 cellLastPage.ID = "cellLastPage";
534 row.Cells.Add( cellLastPage );
535 cellLastPage.VerticalAlign = VerticalAlign.Middle;
536 cellLastPage.HorizontalAlign = HorizontalAlign.Center;
537 if( LastPageIsVisible )
538 {
539 LinkButton lbtnLastPage = new LinkButton();
540 lbtnLastPage.ID = "lbtnLastPage";
541 cellLastPage.Controls.Add( lbtnLastPage );
542 lbtnLastPage.Click +=new EventHandler(lbtnLastPage_Click);
543 if( LastPageText.Length > 0 )
544 {
545 lbtnLastPage.Text = LastPageText;
546 }
547 else
548 {
549 lbtnLastPage.Text = "最后一页";
550 }
551 }
552 #endregion
553
554 选择页码#region 选择页码
555 if( SelectPageIsVisible )
556 {
557 TableCell cellSelectPage = new TableCell();
558 cellSelectPage.ID = "cellSelectPage";
559 if( SelectPosition == Position.Front )
560 {
561 row.Cells.AddAt(0, cellSelectPage);
562 }
563 else
564 {
565 row.Cells.Add( cellSelectPage );
566 }
567 cellSelectPage.VerticalAlign = VerticalAlign.Middle;
568 cellSelectPage.HorizontalAlign = HorizontalAlign.Center;
569
570 DropDownList ddlSelectPage = new DropDownList();
571 ddlSelectPage.ID = "ddlSelectPage";
572 cellSelectPage.Controls.Add( ddlSelectPage );
573 SetDropDownListValue( ddlSelectPage, PageCount );
574 ddlSelectPage.SelectedIndex = CurrentPageIndex - 1;
575 ddlSelectPage.AutoPostBack = true;
576 ddlSelectPage.SelectedIndexChanged +=new EventHandler(ddlSelectPage_SelectedIndexChanged);
577 }
578
579 #endregion
580
581 base.CreateChildControls ();
582 }
583 #endregion
584
585 Change Pageindex#region Change Pageindex
586
587 首页#region 首页
588 private void lbtnFirstPage_Click(object sender, EventArgs e)
589 {
590 CurrentPageIndex = 1;
591 CreateChildControls();
592 SendPageChanged();
593 }
594 #endregion
595
596 上一页#region 上一页
597 private void lbtnPrevPage_Click(object sender, EventArgs e)
598 {
599 if( CurrentPageIndex > 1)
600 {
601 CurrentPageIndex = CurrentPageIndex - 1;
602 }
603 CreateChildControls();
604 SendPageChanged();
605 }
606 #endregion
607
608 下一页#region 下一页
609 private void lbtnNextPage_Click(object sender, EventArgs e)
610 {
611 if( CurrentPageIndex < PageCount )
612 {
613 CurrentPageIndex = CurrentPageIndex + 1;
614 }
615 CreateChildControls();
616 SendPageChanged();
617 }
618 #endregion
619
620 最后一页#region 最后一页
621 private void lbtnLastPage_Click(object sender, EventArgs e)
622 {
623 CurrentPageIndex = PageCount;
624 CreateChildControls();
625 SendPageChanged();
626 }
627 #endregion
628
629 选择页码#region 选择页码
630 private void ddlSelectPage_SelectedIndexChanged(object sender, EventArgs e)
631 {
632 DropDownList ddlSelectPage = sender as DropDownList;
633 if( ddlSelectPage != null )
634 {
635 CurrentPageIndex = Convert.ToInt32( ddlSelectPage.SelectedValue );
636 CreateChildControls();
637 SendPageChanged();
638 }
639 }
640 #endregion
641
642 #endregion
643
644 Event PageChanged#region Event PageChanged
645 public event EventHandler PageChanged;
646 #endregion
647
648 SendPageChange#region SendPageChange
649 private void SendPageChanged()
650 {
651 if(PageChanged != null)
652 {
653 PageChanged(this,EventArgs.Empty);
654 }
655 }
656 #endregion
657
658
659 }
660}
661
使用方法:2using System.Web.UI;
3using System.Web.UI.WebControls;
4using System.ComponentModel;
5using System.Drawing;
6
7namespace DataPage
8{
9 public enum Position{ Front, Back}
10 /**//// <summary>
11 /// WebDataPage 的摘要说明。
12 /// </summary>
13 [DefaultProperty("Text"),
14 ToolboxData("<{0}:WebDataPage runat=server></{0}:WebDataPage>")]
15 public class WebDataPage : System.Web.UI.WebControls.WebControl,INamingContainer
16 {
17 Function#region Function
18
19 GetInt#region GetInt
20 private int GetInt(object obj)
21 {
22 int iReturn = 0;
23 if( obj != null )
24 {
25 iReturn = (int)obj;
26 }
27 return iReturn;
28 }
29 #endregion
30
31 GetString#region GetString
32 private string GetString(string strValue)
33 {
34 return strValue;
35 }
36 private string GetString(object obj)
37 {
38 if( obj == null )
39 {
40 return "";
41 }
42 else
43 {
44 return obj.ToString();
45 }
46 }
47 #endregion
48
49 GetBoolean#region GetBoolean
50 private bool GetBoolean(object obj)
51 {
52 if( obj != null )
53 {
54 return (bool)obj;
55 }
56 else
57 {
58 return true;
59 }
60 }
61 #endregion
62
63 SetDropDownListValue#region SetDropDownListValue
64 private void SetDropDownListValue(DropDownList ddl, int iValue)
65 {
66 if( ddl != null )
67 {
68 for(int i=1; i<= iValue; i++)
69 {
70 ListItem lst = new ListItem();
71 lst.Value = i.ToString();
72 lst.Text = "第" + i.ToString() + "页";
73 ddl.Items.Add( lst );
74 }
75 }
76 }
77 #endregion
78
79 #endregion
80
81 页码#region 页码
82
83 PageCount 获取或设置总页数#region PageCount 获取或设置总页数
84 /**//// <summary>
85 /// 获取或设置总页数
86 /// </summary>
87 public int PageCount
88 {
89 get
90 {
91 if( PageSize == 0)
92 {
93 ViewState[ "PageCount" ] = 0;
94 }
95 else
96 {
97 if( RecordCount % PageSize > 0 )
98 {
99 ViewState[ "PageCount" ] = RecordCount / PageSize + 1;
100 }
101 else
102 {
103 ViewState[ "PageCount" ] = RecordCount / PageSize;
104 }
105 }
106 return GetInt( ViewState[ "PageCount" ] );
107 }
108 set
109 {
110 ViewState[ "PageCount" ] = value;
111 }
112 }
113 #endregion
114
115 RecordCount 获取或设置记录总数#region RecordCount 获取或设置记录总数
116 /**//// <summary>
117 /// 获取或设置记录总数
118 /// </summary>
119 public int RecordCount
120 {
121 get
122 {
123 return GetInt( ViewState[ "RecordCount" ] );
124 }
125 set
126 {
127 ViewState[ "RecordCount" ] = value;
128 }
129 }
130 #endregion
131
132 PageSize 设置每页显示的记录数#region PageSize 设置每页显示的记录数
133 /**//// <summary>
134 /// 设置每页显示的记录数
135 /// </summary>
136 public int PageSize
137 {
138 get
139 {
140 return GetInt( ViewState[ "PageSize" ] );
141 }
142 set
143 {
144 ViewState[ "PageSize" ] = value;
145 }
146 }
147 #endregion
148
149 CurrentPageIndex 获取或设置当前页#region CurrentPageIndex 获取或设置当前页
150 /**//// <summary>
151 /// 获取或设置当前页
152 /// </summary>
153 public int CurrentPageIndex
154 {
155 get
156 {
157 return GetInt( ViewState[ "CurrentPageIndex" ] );
158 }
159 set
160 {
161 ViewState[ "CurrentPageIndex" ] = value;
162 }
163 }
164 #endregion
165
166 #endregion
167
168 信息是否显示#region 信息是否显示
169
170 RecordCountIsVisible 总共N条记录是否显示#region RecordCountIsVisible 总共N条记录是否显示
171 /**//// <summary>
172 /// 总共N条记录是否显示
173 /// </summary>
174 public bool RecordCountIsVisible
175 {
176 get
177 {
178 return GetBoolean( ViewState[ "RecordCountIsVisible" ] );
179 }
180 set
181 {
182 ViewState[ "RecordCountIsVisible" ] = value;
183 }
184 }
185 #endregion
186
187 PageCountIsVisible 共N页是否显示#region PageCountIsVisible 共N页是否显示
188 /**//// <summary>
189 /// 共N页是否显示
190 /// </summary>
191 public bool PageCountIsVisible
192 {
193 get
194 {
195 return GetBoolean( ViewState[ "PageCountIsVisible" ] );
196 }
197 set
198 {
199 ViewState[ "PageCountIsVisible" ] = value;
200 }
201 }
202 #endregion
203
204 CurrentPageIndexIsVisible 第N页是否显示#region CurrentPageIndexIsVisible 第N页是否显示
205 /**//// <summary>
206 /// 第N页是否显示
207 /// </summary>
208 public bool CurrentPageIndexIsVisible
209 {
210 get
211 {
212 return GetBoolean( ViewState[ "CurrentPageIndexIsVisible" ] );
213 }
214 set
215 {
216 ViewState[ "CurrentPageIndexIsVisible" ] = value;
217 }
218 }
219 #endregion
220
221 FirstPageIsVisible 首页是否显示#region FirstPageIsVisible 首页是否显示
222 /**//// <summary>
223 /// 首页是否显示
224 /// </summary>
225 public bool FirstPageIsVisible
226 {
227 get
228 {
229 return GetBoolean( ViewState[ "FirstPageIsVisible" ] );
230 }
231 set
232 {
233 ViewState[ "FirstPageIsVisible" ] = value;
234 }
235 }
236 #endregion
237
238 PrevPageIsVisible 上一页是否显示#region PrevPageIsVisible 上一页是否显示
239 /**//// <summary>
240 /// 上一页是否显示
241 /// </summary>
242 public bool PrevPageIsVisible
243 {
244 get
245 {
246 return GetBoolean( ViewState[ "PrevPageIsVisible" ] );
247 }
248 set
249 {
250 ViewState[ "PrevPageIsVisible" ] = value;
251 }
252 }
253 #endregion
254
255 NextPageIsVisible 下一页是否显示#region NextPageIsVisible 下一页是否显示
256 /**//// <summary>
257 /// 下一页是否显示
258 /// </summary>
259 public bool NextPageIsVisible
260 {
261 get
262 {
263 return GetBoolean( ViewState[ "NextPageIsVisible" ] );
264 }
265 set
266 {
267 ViewState[ "NextPageIsVisible" ] = value;
268 }
269 }
270 #endregion
271
272 LastPageIsVisible 最后一页是否显示#region LastPageIsVisible 最后一页是否显示
273 /**//// <summary>
274 /// 最后一页是否显示
275 /// </summary>
276 public bool LastPageIsVisible
277 {
278 get
279 {
280 return GetBoolean( ViewState[ "LastPageIsVisible" ] );
281 }
282 set
283 {
284 ViewState[ "LastPageIsVisible" ] = value;
285 }
286 }
287 #endregion
288
289 SelectPageIsVisible 下拉列表框是否显示#region SelectPageIsVisible 下拉列表框是否显示
290 /**//// <summary>
291 /// 下拉列表框是否显示
292 /// </summary>
293 public bool SelectPageIsVisible
294 {
295 get
296 {
297 return GetBoolean( ViewState[ "SelectPageIsVisible" ] );
298 }
299 set
300 {
301 ViewState[ "SelectPageIsVisible" ] = value;
302 }
303 }
304 #endregion
305
306 #endregion
307
308 文本内容#region 文本内容
309
310 FirstPageText 首页文本内容#region FirstPageText 首页文本内容
311 /**//// <summary>
312 /// 首页文本内容
313 /// </summary>
314 public string FirstPageText
315 {
316 get
317 {
318 return GetString( ViewState[ "FirstPageText" ] );
319 }
320 set
321 {
322 ViewState[ "FirstPageText" ] = value;
323 }
324 }
325 #endregion
326
327 PrevPageText 上一页文本内容#region PrevPageText 上一页文本内容
328 /**//// <summary>
329 /// 上一页文本内容
330 /// </summary>
331 public string PrevPageText
332 {
333 get
334 {
335 return GetString( ViewState[ "PrevPageText" ] );
336 }
337 set
338 {
339 ViewState[ "PrevPageText" ] = value;
340 }
341 }
342 #endregion
343
344 NextPageText 下一页文本内容#region NextPageText 下一页文本内容
345 /**//// <summary>
346 /// 下一页文本内容
347 /// </summary>
348 public string NextPageText
349 {
350 get
351 {
352 return GetString( ViewState[ "NextPageText" ] );
353 }
354 set
355 {
356 ViewState[ "NextPageText" ] = value;
357 }
358 }
359 #endregion
360
361 LastPageText 最后一页文本内容#region LastPageText 最后一页文本内容
362 /**//// <summary>
363 /// 最后一页文本内容
364 /// </summary>
365 public string LastPageText
366 {
367 get
368 {
369 return GetString( ViewState[ "LastPageText" ] );
370 }
371 set
372 {
373 ViewState[ "LastPageText" ] = value;
374 }
375 }
376 #endregion
377
378 #endregion
379
380 获取或设置下拉列表框的位置#region 获取或设置下拉列表框的位置
381 public Position SelectPosition
382 {
383 get
384 {
385 if( ViewState["SelectPosition"] == null )
386 {
387 return Position.Back;
388 }
389 else
390 {
391 return (Position)ViewState["SelectPosition"];
392 }
393 }
394 set
395 {
396 ViewState["SelectPosition"] = value;
397 }
398 }
399 #endregion
400
401
402 CreateChildControls#region CreateChildControls
403 protected override void CreateChildControls()
404 {
405 this.Controls.Clear();
406 //Tanle
407 Table tb = new Table();
408 tb.ID = "tb";
409 this.Controls.Add( tb );
410 tb.Width = Unit.Percentage(100);
411
412 //tr
413 TableRow row = new TableRow();
414 row.ID = "row";
415 tb.Rows.Add( row );
416
417 总共N条记录#region 总共N条记录
418 TableCell cellRecordCount = new TableCell();
419 cellRecordCount.ID = "cellRecordCount";
420 row.Cells.Add( cellRecordCount );
421 cellRecordCount.VerticalAlign = VerticalAlign.Middle;
422 cellRecordCount.HorizontalAlign = HorizontalAlign.Center;
423 if( RecordCountIsVisible )
424 {
425 LiteralControl lcRecordCount = new LiteralControl();
426 lcRecordCount.ID = "lcRecordCount";
427 cellRecordCount.Controls.Add( lcRecordCount );
428 lcRecordCount.Text = "总共 " + RecordCount.ToString() + " 条记录";
429 }
430 #endregion
431
432 共N页#region 共N页
433 TableCell cellPageCount = new TableCell();
434 cellPageCount.ID = "cellPageCount";
435 row.Cells.Add( cellPageCount );
436 cellPageCount.VerticalAlign = VerticalAlign.Middle;
437 cellPageCount.HorizontalAlign = HorizontalAlign.Center;
438 if( PageCountIsVisible )
439 {
440 LiteralControl lcPageCount = new LiteralControl();
441 lcPageCount.ID = "lcPageCount";
442 cellPageCount.Controls.Add( lcPageCount );
443 lcPageCount.Text = "共 " + PageCount.ToString() + " 页";
444 }
445 #endregion
446
447 第N页#region 第N页
448 TableCell cellCurrentPageIndex = new TableCell();
449 cellCurrentPageIndex.ID = "cellCurrentPageIndex";
450 row.Cells.Add( cellCurrentPageIndex );
451 cellCurrentPageIndex.VerticalAlign = VerticalAlign.Middle;
452 cellCurrentPageIndex.HorizontalAlign = HorizontalAlign.Center;
453 if( CurrentPageIndexIsVisible )
454 {
455 LiteralControl lcCurrentPageIndex = new LiteralControl();
456 lcCurrentPageIndex.ID = "lcCurrentPageIndex";
457 cellCurrentPageIndex.Controls.Add( lcCurrentPageIndex );
458 lcCurrentPageIndex.Text = "第 " + CurrentPageIndex.ToString() + " 页";
459 }
460 #endregion
461
462 首页#region 首页
463 TableCell cellFirstPage = new TableCell();
464 cellFirstPage.ID = "cellFirstPage";
465 row.Cells.Add( cellFirstPage );
466 cellFirstPage.VerticalAlign = VerticalAlign.Middle;
467 cellFirstPage.HorizontalAlign = HorizontalAlign.Center;
468 if( FirstPageIsVisible )
469 {
470 LinkButton lbtnFirstPage = new LinkButton();
471 lbtnFirstPage.ID= "lbtnFirstPage";
472 cellFirstPage.Controls.Add( lbtnFirstPage );
473 lbtnFirstPage.Click +=new EventHandler(lbtnFirstPage_Click);
474 if( FirstPageText.Length > 0 )
475 {
476 lbtnFirstPage.Text = FirstPageText;
477 }
478 else
479 {
480 lbtnFirstPage.Text = "首页";
481 }
482 }
483 #endregion
484
485 上一页#region 上一页
486 TableCell cellPrevPage = new TableCell();
487 cellPrevPage.ID = "cellPrevPage";
488 row.Cells.Add( cellPrevPage );
489 cellPrevPage.VerticalAlign = VerticalAlign.Middle;
490 cellPrevPage.HorizontalAlign = HorizontalAlign.Center;
491 if( PrevPageIsVisible )
492 {
493 LinkButton lbtnPrevPage= new LinkButton();
494 lbtnPrevPage.ID = "lbtnPrevPage";
495 cellPrevPage.Controls.Add( lbtnPrevPage );
496 lbtnPrevPage.Click +=new EventHandler(lbtnPrevPage_Click);
497 if( PrevPageText.Length > 0 )
498 {
499 lbtnPrevPage.Text = PrevPageText;
500 }
501 else
502 {
503 lbtnPrevPage.Text = "上一页";
504 }
505 }
506 #endregion
507
508 下一页#region 下一页
509 TableCell cellNextPage = new TableCell();
510 cellNextPage.ID = "cellNextPage";
511 row.Cells.Add( cellNextPage );
512 cellNextPage.VerticalAlign = VerticalAlign.Middle;
513 cellNextPage.HorizontalAlign = HorizontalAlign.Center;
514 if( NextPageIsVisible )
515 {
516 LinkButton lbtnNextPage = new LinkButton();
517 lbtnNextPage.ID= "lbtnNextPage";
518 cellNextPage.Controls.Add( lbtnNextPage );
519 lbtnNextPage.Click +=new EventHandler(lbtnNextPage_Click);
520 if( NextPageText.Length > 0 )
521 {
522 lbtnNextPage.Text = NextPageText;
523 }
524 else
525 {
526 lbtnNextPage.Text = "下一页";
527 }
528 }
529 #endregion
530
531 最后一页#region 最后一页
532 TableCell cellLastPage = new TableCell();
533 cellLastPage.ID = "cellLastPage";
534 row.Cells.Add( cellLastPage );
535 cellLastPage.VerticalAlign = VerticalAlign.Middle;
536 cellLastPage.HorizontalAlign = HorizontalAlign.Center;
537 if( LastPageIsVisible )
538 {
539 LinkButton lbtnLastPage = new LinkButton();
540 lbtnLastPage.ID = "lbtnLastPage";
541 cellLastPage.Controls.Add( lbtnLastPage );
542 lbtnLastPage.Click +=new EventHandler(lbtnLastPage_Click);
543 if( LastPageText.Length > 0 )
544 {
545 lbtnLastPage.Text = LastPageText;
546 }
547 else
548 {
549 lbtnLastPage.Text = "最后一页";
550 }
551 }
552 #endregion
553
554 选择页码#region 选择页码
555 if( SelectPageIsVisible )
556 {
557 TableCell cellSelectPage = new TableCell();
558 cellSelectPage.ID = "cellSelectPage";
559 if( SelectPosition == Position.Front )
560 {
561 row.Cells.AddAt(0, cellSelectPage);
562 }
563 else
564 {
565 row.Cells.Add( cellSelectPage );
566 }
567 cellSelectPage.VerticalAlign = VerticalAlign.Middle;
568 cellSelectPage.HorizontalAlign = HorizontalAlign.Center;
569
570 DropDownList ddlSelectPage = new DropDownList();
571 ddlSelectPage.ID = "ddlSelectPage";
572 cellSelectPage.Controls.Add( ddlSelectPage );
573 SetDropDownListValue( ddlSelectPage, PageCount );
574 ddlSelectPage.SelectedIndex = CurrentPageIndex - 1;
575 ddlSelectPage.AutoPostBack = true;
576 ddlSelectPage.SelectedIndexChanged +=new EventHandler(ddlSelectPage_SelectedIndexChanged);
577 }
578
579 #endregion
580
581 base.CreateChildControls ();
582 }
583 #endregion
584
585 Change Pageindex#region Change Pageindex
586
587 首页#region 首页
588 private void lbtnFirstPage_Click(object sender, EventArgs e)
589 {
590 CurrentPageIndex = 1;
591 CreateChildControls();
592 SendPageChanged();
593 }
594 #endregion
595
596 上一页#region 上一页
597 private void lbtnPrevPage_Click(object sender, EventArgs e)
598 {
599 if( CurrentPageIndex > 1)
600 {
601 CurrentPageIndex = CurrentPageIndex - 1;
602 }
603 CreateChildControls();
604 SendPageChanged();
605 }
606 #endregion
607
608 下一页#region 下一页
609 private void lbtnNextPage_Click(object sender, EventArgs e)
610 {
611 if( CurrentPageIndex < PageCount )
612 {
613 CurrentPageIndex = CurrentPageIndex + 1;
614 }
615 CreateChildControls();
616 SendPageChanged();
617 }
618 #endregion
619
620 最后一页#region 最后一页
621 private void lbtnLastPage_Click(object sender, EventArgs e)
622 {
623 CurrentPageIndex = PageCount;
624 CreateChildControls();
625 SendPageChanged();
626 }
627 #endregion
628
629 选择页码#region 选择页码
630 private void ddlSelectPage_SelectedIndexChanged(object sender, EventArgs e)
631 {
632 DropDownList ddlSelectPage = sender as DropDownList;
633 if( ddlSelectPage != null )
634 {
635 CurrentPageIndex = Convert.ToInt32( ddlSelectPage.SelectedValue );
636 CreateChildControls();
637 SendPageChanged();
638 }
639 }
640 #endregion
641
642 #endregion
643
644 Event PageChanged#region Event PageChanged
645 public event EventHandler PageChanged;
646 #endregion
647
648 SendPageChange#region SendPageChange
649 private void SendPageChanged()
650 {
651 if(PageChanged != null)
652 {
653 PageChanged(this,EventArgs.Empty);
654 }
655 }
656 #endregion
657
658
659 }
660}
661
<%@ Register TagPrefix="cc1" Namespace="DataPage" Assembly="DataPage" %>
<cc1:WebDataPage id="WebDataPage1" runat="server"></cc1:WebDataPage>
<%@ Register TagPrefix="cc1" Namespace="DataPage" Assembly="DataPage" %><%@ Register TagPrefix="cc1" Namespace="DataPage" Assembly="DataPage" %><%@ Register TagPrefix="cc1" Namespace="DataPage" Assembly="DataPage" %><%@ Register TagPrefix="cc1" Namespace="DataPage" Assembly="DataPage" %>