using System; using System.Collections.Generic; using System.ComponentModel; using System.Text; using System.Web; using System.Web.UI; namespace System.Web.UI.WebControls { [System.Security.Permissions.PermissionSetAttribute(System.Security.Permissions.SecurityAction.Demand, Name = "FullTrust"), DefaultProperty("PageCount"), ToolboxData("<{0}:PageNavigator runat=server></{0}:PageNavigator>")] public class PageNavigator : WebControl, IPostBackEventHandler { public event PageIndexChangingEventHandler PageIndexChanging; public delegate void PageIndexChangingEventHandler(object sender, PageChangingEventArgs e); public event PageIndexChangedEventHandler PageIndexChanged; public delegate void PageIndexChangedEventHandler(object sender, PageChangedEventArgs e); [Bindable(true), Category("Appearance"), DefaultValue(0)] public int PageCount { get { object o = ViewState("PageCount"); if (o == null) { return 0; } else { return (int)o; } } set { ViewState("PageCount") = value; } } [Bindable(true), Category("Appearance"), DefaultValue(0)] public int CurrentPage { get { object o = ViewState("CurrentPage"); if (o == null) { return 0; } else { return (int)o; } } set { ViewState("CurrentPage") = value; } } [Bindable(true), Category("Appearance"), DefaultValue(10)] public int ViewPages { get { object o = ViewState("ViewPages"); if (o == null) { return 10; } else { return (int)o; } } set { ViewState("ViewPages") = value; } } public void RaisePostBackEvent(string eventArgument) { int page = (int)eventArgument; if ((!(page == CurrentPage))) { PageChangingEventArgs arg = new PageChangingEventArgs(CurrentPage, page); if (PageIndexChanging != null) { PageIndexChanging(this, new PageChangingEventArgs(CurrentPage, page)); } if ((!arg.Cancel)) { CurrentPage = page; if (PageIndexChanged != null) { PageIndexChanged(this, new PageChangedEventArgs(CurrentPage)); } } } } protected override void RenderContents(HtmlTextWriter writer) { int first = (CurrentPage > ViewPages / 2 ? CurrentPage - ViewPages / 2 : 0); int last = (PageCount > first + ViewPages ? first + ViewPages - 1 : PageCount - 1); if ((first > 0)) { RenderHref(writer, 0); writer.WriteEncodedText(" "); } for (int i = first; i <= last; i++) { RenderHref(writer, i); writer.WriteEncodedText(" "); } if ((last < PageCount - 1)) { RenderHref(writer, PageCount - 1); } } protected void RenderHref(HtmlTextWriter writer, int pageNumber) { writer.AddAttribute(HtmlTextWriterAttribute.Href, this.Page.ClientScript.GetPostBackClientHyperlink(this, pageNumber.ToString)); if ((pageNumber == CurrentPage)) { writer.AddAttribute(HtmlTextWriterAttribute.Disabled, "true"); } writer.RenderBeginTag(HtmlTextWriterTag.A); writer.WriteEncodedText((string)pageNumber + 1); writer.RenderEndTag(); } } public class PageChangingEventArgs : EventArgs { private int _OldPageIndex; private int _NewPageIndex; private bool _Cancel; public PageChangingEventArgs(int OldPageIndex, int NewPageIndex) { this._OldPageIndex = OldPageIndex; this._NewPageIndex = NewPageIndex; } public int OldPageIndex { get { return _OldPageIndex; } } public int NewPageIndex { get { return _NewPageIndex; } } public bool Cancel { get { return _Cancel; } set { _Cancel = value; } } } public class PageChangedEventArgs : EventArgs { private int _PageIndex; public PageChangedEventArgs(int PageIndex) { this._PageIndex = PageIndex; } public int PageIndex { get { return _PageIndex; } } } } 没找到想要格式的分页控件,自己写了个简单的 按照需要自己修改吧