该控件成形如图:
主要功能如下:
用户设置每页行数 (或者不设置 则该控件默认每页10笔数据)
用户设置分页控件的数据源DataTable(或者输入查询sql)
该控件会先将传入的数据源保存到session(这样之后就不用重复查询)
然后根据用户的操作(第一页、上一页,下一页,最后页,Go页)
以及当前所在的页码
得到符合条件的返回数据 (即点击下一页或上一页后 需要正确显示的数据集)
同时 可以根据数据是否多于一页 来决定该控件是否需要显示
然后用户可以选用 这返回的DataTable数据集进行相关操作
(本控件 已加入部分js判断)
==============
示例源代码如下:
++++++++++++++++++
PageIndexCtl.ascx
+++++++++++++
<%@ Control Language="C#" AutoEventWireup="true" CodeFile="PageIndexCtl.ascx.cs" Inherits="Controls_PageIndexCtl" %>
<table>
<tr id="tr_PageIndex" runat="server">
<td>
<asp:LinkButton ID="lbtn_FirstPage" runat="server" OnClick="lbtn_FirstPage_Click" >第一页</asp:LinkButton>
<asp:LinkButton ID="lbtn_PrePage" runat="server" OnClick="lbtn_PrePage_Click" >上一页</asp:LinkButton>
<asp:LinkButton ID="lbtn_NextPage" runat="server" OnClick="lbtn_NextPage_Click" >下一页</asp:LinkButton>
<asp:LinkButton ID="lbtn_LastPage" runat="server" OnClick="lbtn_LastPage_Click" >最后页</asp:LinkButton>
</td>
</tr>
<tr align="center" id="tr_GoPage" runat="server">
<td>
当前第
<asp:TextBox ID="txt_CurrPage" runat="server" Width="30px" Text="1"></asp:TextBox>
<asp:TextBox ID="txt_CurrPageReal" runat="server" Width="30px" Text="1" style="display:none;"></asp:TextBox>
页/共
<asp:TextBox ID="txt_TotalPage" runat="server" Width="30px" ReadOnly="True" Text="1"></asp:TextBox>
页
<asp:Button ID="btn_GoPage" runat="server" Text="GO" OnClick="btn_GoPage_Click"/></td>
</tr>
</table>+++++++++++++++++++++
PageIndexCtl.ascx.cs
+++++++++++++++++++++
1using System;
2using System.Data;
3using System.Configuration;
4using System.Collections;
5using System.Web;
6using System.Web.Security;
7using System.Web.UI;
8using System.Web.UI.WebControls;
9using System.Web.UI.WebControls.WebParts;
10using System.Web.UI.HtmlControls;
11
12using Gentle.Common;
13using Gentle.Framework;
14using Gentle.Provider;
15
16
17
18/**//*
19 * 作者:Free
20 * 日期:2006/12/28
21 * 名称:系统所用的页面导航: 第一页 上一页 下一页 最后页 当前为第几页/共多少页
22 * 描述:
23 */
24
25public partial class Controls_PageIndexCtl : System.Web.UI.UserControl
26{
27
28 属性声明与公开#region 属性声明与公开
29
30 本控件所需要参数#region 本控件所需要参数
31
32 //私有声明
33 #region
34
35 private string selectSQL;
36
37 private bool isHavedData = true;
38
39 private int currPage = 1;
40 private int totalPage = 1;
41 private int countPerPage = 10;
42
43 private bool isAutoVisible = true;
44
45 private DataTable dt_result;
46
47 #endregion
48
49 //公开属性
50 #region
51
52 /**//// <summary>
53 /// 查询出数据的SQL语句 注意要有Order By
54 /// </summary>
55 [DataSysDescription("查询出数据的SQL语句 注意要有Order By")]
56 public string SelectSQL
57 {
58 get { return selectSQL; }
59 set { selectSQL = value; }
60 }
61
62 /**//// <summary>
63 /// 当前页码
64 /// </summary>
65 [DataSysDescription("当前页码")]
66 [DefaultSettingValue("1")]
67 public int CurrPage
68 {
69 get { return currPage; }
70 set { currPage = value;}
71 }
72
73 /**//// <summary>
74 /// 数据总行数/每页行数 = 总页数
75 /// </summary>
76 [DataSysDescription("数据总行数/每页行数 = 总页数")]
77 [DefaultSettingValue("1")]
78 public int TotalPage
79 {
80 get { return totalPage; }
81 set { totalPage = value; }
82 }
83
84 /**//// <summary>
85 /// 每页显示的数据行数
86 /// </summary>
87 [DataSysDescription("每页显示的数据行数")]
88 [DefaultSettingValue("2")]
89 public int CountPerPage
90 {
91 get
92 {
93 string perCountName = this.UniqueID + "CountPerPage";
94 if (ViewState[perCountName] != null)
95 {
96 return Convert.ToInt32(ViewState[perCountName].ToString());
97 }
98 else
99 {
100 return 10;//默认值
101 }
102 }
103 set
104 {
105 string perCountName = this.UniqueID + "CountPerPage";
106 if (ViewState[perCountName] != null)
107 {
108 ViewState[perCountName] = value;
109 }
110 else
111 {
112 ViewState.Add(perCountName, value);
113 }
114 }
115 }
116
117 [DataSysDescription("计算后 所得的DataTable")]
118 public DataTable dt_Result
119 {
120 get { return dt_result; }
121 set { dt_result = value; }
122 }
123
124
125 [DataSysDescription("是否是已经有了所有数据的DataTable")]
126 public bool IsHavedData
127 {
128 get { return isHavedData; }
129 set { isHavedData = value; }
130 }
131
132 [DataSysDescription("本次分页 需要用这个DataTable")]
133 public DataTable dt_UseThisResult
134 {
135 get
136 {
137 string dtName = this.UniqueID + "Result";
138 if (Session[dtName] != null)
139 {
140 return (DataTable)Session[dtName];
141 }
142 else
143 {
144 return null;
145 }
146 }
147 set
148 {
149 string dtName = this.UniqueID + "Result";
150 if (Session[dtName] != null)
151 {
152 Session[dtName] = value;
153 }
154 else
155 {
156 Session.Add(dtName, value);
157 }
158 }
159 }
160
161 [DataSysDescription("本控件是否总是显示 还是数据行数不够一页时 不用显示")]
162 public bool IsAutoVisible
163 {
164 get { return isAutoVisible; }
165 set { isAutoVisible = value; }
166 }
167 #endregion
168
169 #endregion
170
171 LinkButton 的 文字显示#region LinkButton 的 文字显示
172 #endregion
173
174 #endregion
175
176 事件声明与公开#region 事件声明与公开
177
178 public event EventHandler EventFirstPage;
179 public event EventHandler EventPrePage;
180 public event EventHandler EventNextPage;
181 public event EventHandler EventLastPage;
182 public event EventHandler EventGoPage;
183
184 #endregion
185
186 相关功能实现的方法#region 相关功能实现的方法
187
188 Page_Load#region Page_Load
189 protected void Page_Load(object sender, EventArgs e)
190 {
191
192 }
193 #endregion
194
195 第一页#region 第一页
196 protected void lbtn_FirstPage_Click(object sender, EventArgs e)
197 {
198 if (BindResult("firstPage"))
199 {
200 //触发用户所写事件
201 if (EventFirstPage != null)
202 EventFirstPage(this, e);
203 }
204
205 }
206 #endregion
207
208 上一页#region 上一页
209 protected void lbtn_PrePage_Click(object sender, EventArgs e)
210 {
211 if (BindResult("prePage"))
212 {
213 //触发用户所写事件
214 if (EventFirstPage != null)
215 EventFirstPage(this, e);
216 }
217 }
218 #endregion
219
220 后一页#region 后一页
221 protected void lbtn_NextPage_Click(object sender, EventArgs e)
222 {
223 if (BindResult("nextPage"))
224 {
225 //触发用户所写事件
226 if (EventFirstPage != null)
227 EventFirstPage(this, e);
228 }
229 }
230 #endregion
231
232 最后页#region 最后页
233 protected void lbtn_LastPage_Click(object sender, EventArgs e)
234 {
235 if (BindResult("lastPage"))
236 {
237 //触发用户所写事件
238 if (EventFirstPage != null)
239 EventFirstPage(this, e);
240 }
241
242 }
243 #endregion
244
245 GO到第几页#region GO到第几页
246 protected void btn_GoPage_Click(object sender, EventArgs e)
247 {
248 if (BindResult("goPage"))
249 {
250 //触发用户所写事件
251 if (EventFirstPage != null)
252 EventFirstPage(this, e);
253 }
254 }
255 #endregion
256
257 公共调用方法#region 公共调用方法
258 private bool BindResult(string strType)
259 {
260 try
261 {
262 regJS();
263
264 //int currPageShow = Convert.ToInt32(this.txt_CurrPage.Text.Trim());//页面显示出的当前页 可能会被用户改动过
265 int currTotalShow = Convert.ToInt32(this.txt_TotalPage.Text.Trim());
266
267 int realCurrPage = Convert.ToInt32(this.txt_CurrPageReal.Text.Trim());//目前数据的真实当前页
268
269 判断 当前页 总页 将到页 看 是否有必要继续#region 判断 当前页 总页 将到页 看 是否有必要继续
270 if (strType.Equals("firstPage"))
271 {
272 if (realCurrPage <= 1)
273 {
274 return false;
275 }
276 }
277
278 if (strType.Equals("prePage"))
279 {
280 if (realCurrPage <= 1)
281 {
282 return false;
283 }
284 }
285
286 if (strType.Equals("nextPage"))
287 {
288 if (realCurrPage >= currTotalShow)
289 {
290 return false;
291 }
292 }
293
294 if (strType.Equals("lastPage"))
295 {
296 if (realCurrPage >= currTotalShow)
297 {
298 return false;
299 }
300 }
301
302 if (strType.Equals("goPage"))
303 {
304 //int currPageShow = Convert.ToInt32(this.txt_CurrPage.Text.Trim());//页面显示出的当前页 可能会被用户改动过
305
306 //if (currPageShow < 1)
307 //{
308 // //return false;
309 // this.txt_CurrPage.Text = "1";
310 //}
311
312 //if (currPageShow > currTotalShow)
313 //{
314 // //return false;
315 // this.txt_CurrPage.Text =
316 //}
317 }
318 #endregion
319
320 DataTable dt = new DataTable();
321
322 判断 数据来源#region 判断 数据来源
323 if (isHavedData) //如果已经有了数据源 则 直接用
324 {
325 dt = this.dt_UseThisResult;
326 }
327 else
328 {
329 //根据用户所提供的SQL语句 得到 相对应的DataTable
330 string strCommand = this.SelectSQL;
331 SqlResult sr = Broker.Execute(strCommand);
332 dt = ObjectView.GetDataView(sr).Table;
333
334 this.dt_UseThisResult = dt;//加入Session
335
336 }
337 #endregion
338360docimg_501_
339360docimg_502_ int currRowCount = dt.Rows.Count;
340360docimg_503_
341360docimg_504_ if (currRowCount <= 0) //如果查无数据 直接返回
342360docimg_505_ return false;
343360docimg_506_ this.countPerPage = this.CountPerPage;//取得目前 每页行数
344360docimg_507_
345360docimg_508_ int totalPageShow = (currRowCount % this.countPerPage > 0) ? ((currRowCount / this.countPerPage) + 1) : (currRowCount / this.countPerPage);
346360docimg_509_ //总页数
347360docimg_510_ this.txt_TotalPage.Text = totalPageShow.ToString();
348360docimg_511_ this.totalPage = totalPageShow;
349360docimg_512_
350360docimg_513_ int start = 0;
351360docimg_514_ int end = 0;
352360docimg_515_
353360docimg_516_360docimg_517_ 根据情况 进行 起止点 计算#region 根据情况 进行 起止点 计算
354360docimg_518_
355360docimg_519_ if (strType.Equals("firstPage"))
356360docimg_520_360docimg_521_ 360docimg_522_{
357360docimg_523_ //
358360docimg_524_ start = 1;
359360docimg_525_ end = currRowCount > this.countPerPage ? this.countPerPage : currRowCount;
360360docimg_526_ //当前页数 显示
361360docimg_527_ this.txt_CurrPage.Text = "1";
362360docimg_528_ this.txt_CurrPageReal.Text = "1";
363360docimg_529_
364360docimg_530_ }
365360docimg_531_
366360docimg_532_ if (strType.Equals("prePage"))
367360docimg_533_360docimg_534_ 360docimg_535_{
368360docimg_536_ end = (realCurrPage - 1) * this.countPerPage;
369360docimg_537_ start = end - this.countPerPage + 1;
370360docimg_538_ //当前页数 显示
371360docimg_539_ this.txt_CurrPage.Text = Convert.ToString(realCurrPage - 1);
372360docimg_540_ this.txt_CurrPageReal.Text = Convert.ToString(realCurrPage - 1);
373360docimg_541_ }
374360docimg_542_
375360docimg_543_ if (strType.Equals("nextPage"))
376360docimg_544_360docimg_545_ 360docimg_546_{
377360docimg_547_ start = realCurrPage * this.countPerPage + 1;
378360docimg_548_ end = start + this.countPerPage - 1;
379360docimg_549_ //当前页数 显示
380360docimg_550_ this.txt_CurrPage.Text = Convert.ToString((realCurrPage + 1));
381360docimg_551_ this.txt_CurrPageReal.Text = Convert.ToString((realCurrPage + 1));
382360docimg_552_ }
383360docimg_553_
384360docimg_554_ if (strType.Equals("lastPage"))
385360docimg_555_360docimg_556_ 360docimg_557_{
386360docimg_558_ start = (totalPageShow - 1) * this.countPerPage + 1;
387360docimg_559_ end = currRowCount;
388360docimg_560_ //当前页数 显示
389360docimg_561_ this.txt_CurrPage.Text = totalPageShow.ToString();
390360docimg_562_ this.txt_CurrPageReal.Text = totalPageShow.ToString();
391360docimg_563_ }
392360docimg_564_
393360docimg_565_ if (strType.Equals("goPage"))
394360docimg_566_360docimg_567_ 360docimg_568_{
395360docimg_569_ int currPageShow = Convert.ToInt32(this.txt_CurrPage.Text.Trim());//页面显示出的当前页 可能会被用户改动过
396360docimg_570_ if (currPageShow < 1)
397360docimg_571_ currPageShow = 1;
398360docimg_572_ if (currPageShow > totalPageShow)
399360docimg_573_ currPageShow = totalPageShow;
400360docimg_574_
401360docimg_575_ start = (currPageShow - 1) * this.countPerPage + 1;
402360docimg_576_ end = (start + this.countPerPage - 1) > currRowCount ? currRowCount : (start + this.countPerPage - 1);
403360docimg_577_ //当前页数 显示
404360docimg_578_ this.txt_CurrPage.Text = currPageShow.ToString();
405360docimg_579_ this.txt_CurrPageReal.Text = currPageShow.ToString();
406360docimg_580_ }
407360docimg_581_
408360docimg_582_ this.currPage = Convert.ToInt32(this.txt_CurrPageReal.Text.Trim());
409360docimg_583_
410360docimg_584_ #endregion
411360docimg_585_
412360docimg_586_360docimg_587_ 进行指定数据的转移#region 进行指定数据的转移
413360docimg_588_ DataTable tmpdt = dt.Copy();
414360docimg_589_ tmpdt.Clear();
415360docimg_590_
416360docimg_591_ int tmpCount = 0;
417360docimg_592_ tmpCount = end > currRowCount ? currRowCount : end;
418360docimg_593_ for (int i = 0; i < tmpCount; i++)
419360docimg_594_360docimg_595_ 360docimg_596_{
420360docimg_597_ if ((i >= (start - 1)) && (i < end))
421360docimg_598_360docimg_599_ 360docimg_600_{
422360docimg_601_ DataRow tmpdr = tmpdt.NewRow();
423360docimg_602_ for (int j = 0; j < dt.Columns.Count; j++)
424360docimg_603_360docimg_604_ 360docimg_605_{
425360docimg_606_ tmpdr[j] = dt.Rows[i][j];
426360docimg_607_ }
427360docimg_608_ tmpdt.Rows.Add(tmpdr);
428360docimg_609_ }
429360docimg_610_ }
430360docimg_611_
431360docimg_612_ //用户 可以用dt_Result来将数据绑定自己需要的控件上
432360docimg_613_ this.dt_result = tmpdt;
433360docimg_614_
434360docimg_615_ #endregion
435360docimg_616_
436360docimg_617_ return true;
437360docimg_618_
438360docimg_619_ }
439360docimg_620_ catch (Exception ex)
440360docimg_621_360docimg_622_ 360docimg_623_{
441360docimg_624_ ex.ToString();
442360docimg_625_ return false;
443360docimg_626_ }
444360docimg_627_ }
445360docimg_628_ #endregion
446360docimg_629_
447360docimg_630_360docimg_631_ 根据用户提供的数据源 自己计算总页数 和得到第一页资料#region 根据用户提供的数据源 自己计算总页数 和得到第一页资料
448360docimg_632_360docimg_633_ /**//// <summary>
449360docimg_634_ /// 根据用户提供的数据源 自己计算总页数 和得到第一页资料
450360docimg_635_ /// </summary>
451360docimg_636_ /// <param name="dtSources">用户提供的数据源</param>
452360docimg_637_ /// <returns>得到第一页资料</returns>
453360docimg_638_ public DataTable selfMeasure(DataTable dtSources)
454360docimg_639_360docimg_640_ 360docimg_641_{
455360docimg_642_ DataTable dt = dtSources;
456360docimg_643_
457360docimg_644_ int currRowCount = dt.Rows.Count;
458360docimg_645_
459360docimg_646_ //将指定的DataTable作为数据源选项打开
460360docimg_647_ this.dt_UseThisResult = dt;
461360docimg_648_
462360docimg_649_ if (currRowCount <= 0)//如果查无数据 直接返回
463360docimg_650_ return null;
464360docimg_651_
465360docimg_652_ this.countPerPage = this.CountPerPage;//取得目前 每页行数
466360docimg_653_
467360docimg_654_ int totalPageShow = (currRowCount % this.countPerPage > 0) ? ((currRowCount / this.countPerPage) + 1) : (currRowCount / this.countPerPage);
468360docimg_655_ //总页数
469360docimg_656_ this.txt_TotalPage.Text = totalPageShow.ToString();
470360docimg_657_ this.totalPage = totalPageShow;
471360docimg_658_
472360docimg_659_ int start = 0;
473360docimg_660_ int end = 0;
474360docimg_661_
475360docimg_662_ if (currPage > totalPageShow)
476360docimg_663_360docimg_664_ 360docimg_665_{
477360docimg_666_ this.currPage = totalPageShow;
478360docimg_667_ this.txt_CurrPage.Text = totalPageShow.ToString();
479360docimg_668_ //最后页
480360docimg_669_ start = (totalPageShow - 1) * this.countPerPage + 1;
481360docimg_670_ end = currRowCount;
482360docimg_671_ }
483360docimg_672_ else
484360docimg_673_360docimg_674_ 360docimg_675_{
485360docimg_676_ this.txt_CurrPage.Text = this.currPage.ToString();
486360docimg_677_ //指定页 默认的为第一页
487360docimg_678_ start = (Convert.ToInt32(this.txt_CurrPage.Text.Trim()) - 1) * this.countPerPage + 1;
488360docimg_679_ end = (start + this.countPerPage - 1) > currRowCount ? currRowCount : (start + this.countPerPage - 1);
489360docimg_680_ }
490360docimg_681_
491360docimg_682_360docimg_683_ 进行指定数据的转移#region 进行指定数据的转移
492360docimg_684_ DataTable tmpdt = dt.Copy();
493360docimg_685_ tmpdt.Clear();
494360docimg_686_
495360docimg_687_ int tmpCount = 0;
496360docimg_688_ tmpCount = end > currRowCount ? currRowCount : end;
497360docimg_689_ for (int i = 0; i < tmpCount; i++)
498360docimg_690_360docimg_691_ 360docimg_692_{
499360docimg_693_ if ((i >= (start - 1)) && (i < end))
500360docimg_694_360docimg_695_ 360docimg_696_{
501360docimg_697_ DataRow tmpdr = tmpdt.NewRow();
502360docimg_698_ for (int j = 0; j < dt.Columns.Count; j++)
503360docimg_699_360docimg_700_ 360docimg_701_{
504360docimg_702_ tmpdr[j] = dt.Rows[i][j];
505360docimg_703_ }
506360docimg_704_ tmpdt.Rows.Add(tmpdr);
507360docimg_705_ }
508360docimg_706_ }
509360docimg_707_
510360docimg_708_ //用户 可以用dt_Result来将数据绑定自己需要的控件上
511360docimg_709_ this.dt_result = tmpdt;
512360docimg_710_
513360docimg_711_ //根据所查询出的数据行数 决定是否需要显示本控件
514360docimg_712_ if (isAutoVisible)
515360docimg_713_360docimg_714_ 360docimg_715_{
516360docimg_716_ if (currRowCount <= this.countPerPage)
517360docimg_717_360docimg_718_ 360docimg_719_{
518360docimg_720_ this.Visible = false;
519360docimg_721_
520360docimg_722_ }
521360docimg_723_ else
522360docimg_724_360docimg_725_ 360docimg_726_{
523360docimg_727_ this.Visible = true;
524360docimg_728_ regJS();
525360docimg_729_ }
526360docimg_730_
527360docimg_731_ }
528360docimg_732_
529360docimg_733_ #endregion
530360docimg_734_
531360docimg_735_ return tmpdt;
532360docimg_736_
533360docimg_737_ }
534360docimg_738_ #endregion
535360docimg_739_
536360docimg_740_360docimg_741_ 注册JS#region 注册JS
537360docimg_742_ private void regJS()
538360docimg_743_360docimg_744_ 360docimg_745_{
539360docimg_746_360docimg_747_ 注册相关js事件#region 注册相关js事件
540360docimg_748_ string strGuid = this.UniqueID;
541360docimg_749_ string fnNameFirstPre = strGuid + "FirstPre()";
542360docimg_750_ string fnNameNextLast = strGuid + "NextLast()";
543360docimg_751_ string fnNameGo = strGuid + "Go()";
544360docimg_752_
545360docimg_753_ string txtCurrPageRealName = strGuid + "_txt_CurrPageReal";//数据真实所在的页
546360docimg_754_ string txtCurrPageName = strGuid + "_txt_CurrPage";//页面显示的当前页
547360docimg_755_ string txtTotalPageName = strGuid + "_txt_TotalPage";
548360docimg_756_ string strJS = "<script language='javascript' type='text/javascript'>";
549360docimg_757_ strJS += "var jsCurrPageReal = document.all." + txtCurrPageRealName + ".value;";
550360docimg_758_ strJS += "var jsTotalPage = document.all." + txtTotalPageName + ".value;";
551360docimg_759_ strJS += "var jsCurrPage = document.all." + txtCurrPageName + ".value;";
552360docimg_760_ strJS += "function " + fnNameFirstPre + " ";
553360docimg_761_ strJS += "{ if(jsCurrPageReal == 1) { ";
554360docimg_762_ strJS += " document.all." + txtCurrPageName + ".value=1;";
555360docimg_763_ strJS += " alert('已经是第一页'); ";
556360docimg_764_ strJS += " return false; } }";
557360docimg_765_
558360docimg_766_ strJS += "function " + fnNameNextLast + " ";
559360docimg_767_ strJS += "{ if(jsCurrPageReal == jsTotalPage) { ";
560360docimg_768_ strJS += " document.all." + txtCurrPageName + ".value=jsTotalPage;";
561360docimg_769_ strJS += " alert('已经是最后一页'); ";
562360docimg_770_ strJS += " return false; } }";
563360docimg_771_
564360docimg_772_ //strJS += "function " + fnNameGo + " ";
565360docimg_773_ //strJS += "{ if(jsCurrPage > jsTotalPage || jsCurrPage < 1) { ";
566360docimg_774_ //strJS += " alert('请输入有效数值'); ";
567360docimg_775_ //strJS += " return false; } }";
568360docimg_776_
569360docimg_777_ strJS += "</script>";
570360docimg_778_
571360docimg_779_ string jsName = strGuid + "pageJS";
572360docimg_780_ if (!Page.IsStartupScriptRegistered(jsName))
573360docimg_781_360docimg_782_ 360docimg_783_{
574360docimg_784_ Page.RegisterStartupScript(jsName, strJS);
575360docimg_785_ }
576360docimg_786_
577360docimg_787_ this.lbtn_FirstPage.Attributes.Add("onclick", "return " + fnNameFirstPre + ";");
578360docimg_788_ this.lbtn_PrePage.Attributes.Add("onclick", "return " + fnNameFirstPre + ";");
579360docimg_789_ this.lbtn_NextPage.Attributes.Add("onclick", "return " + fnNameNextLast + ";");
580360docimg_790_ this.lbtn_LastPage.Attributes.Add("onclick", "return " + fnNameNextLast + ";");
581360docimg_791_ //this.btn_GoPage.Attributes.Add("onclick", "return " + fnNameGo + ";");
582360docimg_792_
583360docimg_793_ #endregion
584360docimg_794_ }
585360docimg_795_ #endregion
586360docimg_796_
587360docimg_797_ #endregion
588360docimg_798_
589360docimg_799_}
590360docimg_800_++++++++++++++++++++++++
testPageIndexCtl.aspx.cs
++++++++++++++++++++++++
360docimg_801_protected void Button1_Click(object sender, EventArgs e)
360docimg_802_ {
360docimg_803_ string strComm = " SELECT * From Table1 order by id aesc ";
360docimg_804_ SqlResult sr = Broker.Execute(strComm);
360docimg_805_ DataTable dt = ObjectView.GetDataView(sr).Table;
360docimg_806_
360docimg_807_ this.PageIndexCtl1.CountPerPage = 5;
360docimg_808_ GridView1.DataSource = PageIndexCtl1.selfMeasure(dt);
360docimg_809_ GridView1.DataBind();
360docimg_810_ }
360docimg_811_
360docimg_812_ protected void Page_Init()
360docimg_813_ {
360docimg_814_ //订阅事件
360docimg_815_ this.PageIndexCtl1.EventFirstPage += new System.EventHandler(this.EventFirstPage);
360docimg_816_ this.PageIndexCtl1.EventPrePage += new System.EventHandler(this.EventPrePage);
360docimg_817_ this.PageIndexCtl1.EventNextPage += new System.EventHandler(this.EventNextPage);
360docimg_818_ this.PageIndexCtl1.EventLastPage += new System.EventHandler(this.EventLastPage);
360docimg_819_ this.PageIndexCtl1.EventGoPage += new System.EventHandler(this.EventGoPage);
360docimg_820_ }
360docimg_821_
360docimg_822_ private void EventFirstPage(object sender, EventArgs e)
360docimg_823_ {
360docimg_824_
360docimg_825_ this.GridView1.DataSource = this.PageIndexCtl1.dt_Result;
360docimg_826_ this.GridView1.DataBind();
360docimg_827_ }
360docimg_828_ private void EventPrePage(object sender, EventArgs e)
360docimg_829_ {
360docimg_830_ this.GridView1.DataSource = this.PageIndexCtl1.dt_Result;
360docimg_831_ this.GridView1.DataBind();
360docimg_832_ }
360docimg_833_ private void EventNextPage(object sender, EventArgs e)
360docimg_834_ {
360docimg_835_ this.GridView1.DataSource = this.PageIndexCtl1.dt_Result;
360docimg_836_ this.GridView1.DataBind();
360docimg_837_ }
360docimg_838_ private void EventLastPage(object sender, EventArgs e)
360docimg_839_ {
360docimg_840_ this.GridView1.DataSource = this.PageIndexCtl1.dt_Result;
360docimg_841_ this.GridView1.DataBind();
360docimg_842_ }
360docimg_843_ private void EventGoPage(object sender, EventArgs e)
360docimg_844_ {
360docimg_845_ this.GridView1.DataSource = this.PageIndexCtl1.dt_Result;
360docimg_846_ this.GridView1.DataBind();
360docimg_847_ }
360docimg_848_