一直以来都觉得分页是麻烦的事情,.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;