日期:2011-01-09  浏览次数:20369 次

  一直以来都觉得分页是麻烦的事情,.NET中虽然有DATAGRID的分页,但用其他形式的列表仍然需要使用到分页,一次一次的写不利于效率及面向对象的方法,用类或用户控件也总觉得怪怪的,用第3方的自己觉得不放心,也不利于自己进行修改,干脆就自己写了一个。
 
  (另外注意:在控件编译时,可以在AssemblyInfo.cs文件中设置控件的标签和名称空间,如:
using System.Reflection;
using System.Runtime.CompilerServices;
using System.Web.UI;
[assembly: TagPrefix("PublicControls","PublicControls")]  // 自定义控件前缀
 
  第一个参数是名称空间(必须是你的控件类的名称空间),第二个是标签名(可自定义)
 
  记得要加入System.Web.UI;名称空间,另外 将控件类内的
 
     [DefaultProperty("Text"), 
     ToolboxData("<PublicControls:PageNavigation runat=server></PublicControls:PageNavigation>")]这句屏蔽掉

所有代码如下:

using System;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.ComponentModel;
using System.Collections;
using System.Collections.Specialized;



namespace PublicControls
{
     ///<summary>
     /// PageNavigation 分页导航控件。
     ///</summary>
     [DefaultProperty("Text"), 
     ToolboxData("<PublicControls:PageNavigation runat=server></PublicControls:PageNavigation>")]
     public class PageNavigation : Control,IPostBackDataHandler,IPostBackEventHandler 
     {
         #region预定义
         
         private string _style;
         private int _count;
         private int _pagesize;
         private int _pageindex;
        private int _pages;         //页群
         private int _currentpages;