自己写的.net分页控件,测试没有问题!
2008-01-21 11:32
357 查看
<%@ Control Language="C#" AutoEventWireup="true" CodeFile="Pager.ascx.cs" Inherits="Controls_Pager" %>
<div id="Splitdiv" class="Pager"><asp:Panel runat="server" ID="pnlSum">共
<asp:label id="lblPageCount" runat="server">0</asp:label> 页 当前第
<asp:label id="lblCurrentIndex" runat="server">1</asp:label> 页 </asp:Panel>
<asp:HyperLink ID="btnFirstPage" runat="server" CssClass="Titlecolo">首页</asp:HyperLink>
<asp:HyperLink ID="btnPrevPage" runat="server" CssClass="linkbutton">上一页</asp:HyperLink>
<asp:HyperLink ID="btnOnePage" runat="server" CssClass="linkbutton"></asp:HyperLink>
<asp:HyperLink ID="btnTowPage" runat="server" CssClass="linkbutton"></asp:HyperLink>
<asp:HyperLink ID="btnThreePage" runat="server" CssClass="linkbutton"></asp:HyperLink>
<asp:HyperLink ID="btnNextPage" runat="server" CssClass="linkbutton">下一页</asp:HyperLink>
<a runat="server" visible="false" id="point">...</a>
<asp:HyperLink ID="btnLastPage" runat="server" CssClass="Titlecolo">末页</asp:HyperLink>
</div>
========================================
using System;
using System.Data;
using System.Configuration;
using System.Collections;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
public partial class Controls_Pager : System.Web.UI.UserControl
{
int pageIndex = 0;
string queryString = "";
protected void Page_Load(object sender, EventArgs e)
{
}
public void BindData()
{
if (!DisplaySum)
pnlSum.Visible = false;
queryString = this.Page.Request.Url.Query;
if (queryString.Contains("pg=") && (queryString.IndexOf("pg=", 0) == 1))
queryString = "";
else if (queryString.Contains("pg="))
{
int pgs = queryString.IndexOf("pg=", 0);
queryString = queryString.Substring(0, pgs - 1);
}
int i = 0;
pageIndex = PageIndex;
int count = RowCount;
int pageCount = Int32.Parse(Math.Ceiling(1.0d * count / PageSize).ToString());
if (pageCount <= 3)
{
btnFirstPage.Visible = false;
btnLastPage.Visible = false;
switch (pageCount)
{
case 1:
btnOnePage.Text = "1";
btnTowPage.Visible = false;
btnThreePage.Visible = false;
break;
case 2:
btnOnePage.Text = "1";
btnTowPage.Text = "2";
btnTowPage.Visible = false;
break;
}
}
if (pageIndex == 1) //是首页,不显示‘首页’和‘上一页’
{
PageIndex = PageIndex + 1;
//AddLink(pageCount);
string absolutePath = this.Page.Request.Url.AbsolutePath;
if (queryString.Length == 0)
{
btnFirstPage.NavigateUrl = String.Format("{0}&pg={1}", absolutePath, 1);
btnOnePage.NavigateUrl = String.Format("{0}?pg={1}", absolutePath, PageIndex - 1);
btnTowPage.NavigateUrl = String.Format("{0}?pg={1}", absolutePath, PageIndex);
btnThreePage.NavigateUrl = String.Format("{0}?pg={1}", absolutePath, PageIndex + 1);
btnPrevPage.NavigateUrl = String.Format("{0}?pg={1}", absolutePath, PageIndex - 1);
btnNextPage.NavigateUrl = String.Format("{0}?pg={1}", absolutePath, PageIndex + 1);
btnLastPage.NavigateUrl = String.Format("{0}?pg={1}", absolutePath, pageCount);
}
else
{
btnOnePage.NavigateUrl = String.Format("{0}{1}&pg={2}", absolutePath, queryString, 1);
btnTowPage.NavigateUrl = String.Format("{0}{1}&pg={2}", absolutePath, queryString, 2);
btnThreePage.NavigateUrl = String.Format("{0}{1}&pg={2}", absolutePath, queryString, 3);
btnNextPage.NavigateUrl = String.Format("{0}{1}&pg={2}", absolutePath, queryString, 2);
btnLastPage.NavigateUrl = String.Format("{0}?pg={1}", absolutePath, pageCount);
}
btnOnePage.Enabled = false;
btnFirstPage.Visible = false;
btnPrevPage.Visible = false;
btnOnePage.Text = "1";
btnTowPage.Text = "2";
btnThreePage.Text = "3";
}
if (pageCount == pageIndex) // 是末页,不显示‘末页’和‘下一页’
{
btnOnePage.Text = Convert.ToString(PageIndex - 2);
btnTowPage.Text = Convert.ToString(PageIndex - 1);
btnThreePage.Text = PageIndex.ToString();
string absolutePath = this.Page.Request.Url.AbsolutePath;
if (queryString.Length == 0)
{
btnFirstPage.NavigateUrl = String.Format("{0}?pg={1}", absolutePath, 1);
btnOnePage.NavigateUrl = String.Format("{0}?pg={1}", absolutePath, PageIndex - 1);
btnTowPage.NavigateUrl = String.Format("{0}?pg={1}", absolutePath, PageIndex);
btnThreePage.NavigateUrl = String.Format("{0}?pg={1}", absolutePath, PageIndex + 1);
btnPrevPage.NavigateUrl = String.Format("{0}?pg={1}", absolutePath, PageIndex - 1);
btnNextPage.NavigateUrl = String.Format("{0}?pg={1}", absolutePath, PageIndex + 1);
btnLastPage.NavigateUrl = String.Format("{0}?pg={1}", absolutePath, pageCount);
}
else
{
btnFirstPage.NavigateUrl = String.Format("{0}{1}?pg={2}", absolutePath, queryString, 1);
btnOnePage.NavigateUrl = String.Format("{0}{1}&pg={2}", absolutePath, queryString, PageIndex - 2);
btnTowPage.NavigateUrl = String.Format("{0}{1}&pg={2}", absolutePath, queryString, PageIndex - 1);
btnThreePage.NavigateUrl = String.Format("{0}{1}&pg={2}", absolutePath, queryString, PageIndex);
btnPrevPage.NavigateUrl = String.Format("{0}{1}&pg={2}", absolutePath, queryString, PageIndex - 1);
btnNextPage.NavigateUrl = String.Format("{0}{1}&pg={2}", absolutePath, queryString, PageIndex);
btnLastPage.NavigateUrl = String.Format("{0}{1}&pg={2}", absolutePath, queryString, pageCount);
}
btnThreePage.Enabled = false;
btnLastPage.Visible = false;
btnNextPage.Visible = false;
}
if (pageIndex - 1 == 1) //是首页
{
btnFirstPage.Visible = false;
AddLink(pageCount);
}
if (pageIndex + 1 == pageCount) // 末页
{
btnLastPage.Visible = false;
AddLink(pageCount);
}
if (pageIndex > 2 && pageIndex < pageCount - 1) //中间页
{
AddLink(pageCount);
btnTowPage.Enabled = false;
}
if (pageCount <= 0)
{
pageCount = 1;
}
lblPageCount.Text = pageCount.ToString();
}
protected void AddLink(int pageCount)
{
btnOnePage.Text = Convert.ToString(PageIndex - 1);
btnTowPage.Text = PageIndex.ToString();
btnThreePage.Text = Convert.ToString(PageIndex + 1);
string absolutePath = this.Page.Request.Url.AbsolutePath;
if (queryString.Length == 0) // test.aspx?pg=1已测试
{
btnFirstPage.NavigateUrl = String.Format("{0}?pg={1}", absolutePath, 1);
btnOnePage.NavigateUrl = String.Format("{0}?pg={1}", absolutePath, PageIndex - 1);
btnTowPage.NavigateUrl = String.Format("{0}?pg={1}", absolutePath, PageIndex);
btnThreePage.NavigateUrl = String.Format("{0}?pg={1}", absolutePath, PageIndex + 1);
btnPrevPage.NavigateUrl = String.Format("{0}?pg={1}", absolutePath, PageIndex - 1);
btnNextPage.NavigateUrl = String.Format("{0}?pg={1}", absolutePath, PageIndex + 1);
btnLastPage.NavigateUrl = String.Format("{0}?pg={1}", absolutePath, pageCount);
}
else // test.aspx?h=0&pg=2 已测试
{
btnFirstPage.NavigateUrl = String.Format("{0}{1}&pg={2}", absolutePath, queryString, 1);
btnOnePage.NavigateUrl = String.Format("{0}{1}&pg={2}", absolutePath, queryString, PageIndex - 1);
btnTowPage.NavigateUrl = String.Format("{0}{1}&pg={2}", absolutePath, queryString, PageIndex);
btnThreePage.NavigateUrl = String.Format("{0}{1}&pg={2}", absolutePath, queryString, PageIndex + 1);
btnPrevPage.NavigateUrl = String.Format("{0}{1}&pg={2}", absolutePath, queryString, PageIndex - 1);
btnNextPage.NavigateUrl = String.Format("{0}{1}&pg={2}", absolutePath, queryString, PageIndex + 1);
btnLastPage.NavigateUrl = String.Format("{0}{1}&pg={2}", absolutePath,queryString, pageCount);
//btnNextPage.NavigateUrl = String.Format("{0}{1}&pg={2}", this.Page.Request.Url, queryString, PageIndex + 1);
//btnLastPage.NavigateUrl = String.Format("{0}?pg={1}", this.Page.Request.Url.AbsolutePath, pageCount);
}
}
#region 公告属性
public int PageIndex
{
get
{
if (Request.QueryString["pg"] != null)
{
int page = Convert.ToInt32(Request.QueryString["pg"]);
lblCurrentIndex.Text = page.ToString();
return page;
}
else
{
if (ViewState["PAGE_Index"] != null)
return Convert.ToInt32(ViewState["PAGE_Index"].ToString());
else
return 1;
}
}
set { ViewState["PAGE_Index"] = value; }
}
public Int32 RowCount
{
get { return Convert.ToInt32(ViewState["ROW_COUNT"]); }
set { ViewState["ROW_COUNT"] = value; }
}
public Int32 PageSize
{
get { return Convert.ToInt32(ViewState["PAGE_SIZE"]); }
set { ViewState["PAGE_SIZE"] = value; }
}
public bool DisplaySum
{
get { return Convert.ToBoolean(ViewState["DISPLAYSUM"]); }
set { ViewState["DISPLAYSUM"] = value; }
}
#endregion
}
<div id="Splitdiv" class="Pager"><asp:Panel runat="server" ID="pnlSum">共
<asp:label id="lblPageCount" runat="server">0</asp:label> 页 当前第
<asp:label id="lblCurrentIndex" runat="server">1</asp:label> 页 </asp:Panel>
<asp:HyperLink ID="btnFirstPage" runat="server" CssClass="Titlecolo">首页</asp:HyperLink>
<asp:HyperLink ID="btnPrevPage" runat="server" CssClass="linkbutton">上一页</asp:HyperLink>
<asp:HyperLink ID="btnOnePage" runat="server" CssClass="linkbutton"></asp:HyperLink>
<asp:HyperLink ID="btnTowPage" runat="server" CssClass="linkbutton"></asp:HyperLink>
<asp:HyperLink ID="btnThreePage" runat="server" CssClass="linkbutton"></asp:HyperLink>
<asp:HyperLink ID="btnNextPage" runat="server" CssClass="linkbutton">下一页</asp:HyperLink>
<a runat="server" visible="false" id="point">...</a>
<asp:HyperLink ID="btnLastPage" runat="server" CssClass="Titlecolo">末页</asp:HyperLink>
</div>
========================================
using System;
using System.Data;
using System.Configuration;
using System.Collections;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
public partial class Controls_Pager : System.Web.UI.UserControl
{
int pageIndex = 0;
string queryString = "";
protected void Page_Load(object sender, EventArgs e)
{
}
public void BindData()
{
if (!DisplaySum)
pnlSum.Visible = false;
queryString = this.Page.Request.Url.Query;
if (queryString.Contains("pg=") && (queryString.IndexOf("pg=", 0) == 1))
queryString = "";
else if (queryString.Contains("pg="))
{
int pgs = queryString.IndexOf("pg=", 0);
queryString = queryString.Substring(0, pgs - 1);
}
int i = 0;
pageIndex = PageIndex;
int count = RowCount;
int pageCount = Int32.Parse(Math.Ceiling(1.0d * count / PageSize).ToString());
if (pageCount <= 3)
{
btnFirstPage.Visible = false;
btnLastPage.Visible = false;
switch (pageCount)
{
case 1:
btnOnePage.Text = "1";
btnTowPage.Visible = false;
btnThreePage.Visible = false;
break;
case 2:
btnOnePage.Text = "1";
btnTowPage.Text = "2";
btnTowPage.Visible = false;
break;
}
}
if (pageIndex == 1) //是首页,不显示‘首页’和‘上一页’
{
PageIndex = PageIndex + 1;
//AddLink(pageCount);
string absolutePath = this.Page.Request.Url.AbsolutePath;
if (queryString.Length == 0)
{
btnFirstPage.NavigateUrl = String.Format("{0}&pg={1}", absolutePath, 1);
btnOnePage.NavigateUrl = String.Format("{0}?pg={1}", absolutePath, PageIndex - 1);
btnTowPage.NavigateUrl = String.Format("{0}?pg={1}", absolutePath, PageIndex);
btnThreePage.NavigateUrl = String.Format("{0}?pg={1}", absolutePath, PageIndex + 1);
btnPrevPage.NavigateUrl = String.Format("{0}?pg={1}", absolutePath, PageIndex - 1);
btnNextPage.NavigateUrl = String.Format("{0}?pg={1}", absolutePath, PageIndex + 1);
btnLastPage.NavigateUrl = String.Format("{0}?pg={1}", absolutePath, pageCount);
}
else
{
btnOnePage.NavigateUrl = String.Format("{0}{1}&pg={2}", absolutePath, queryString, 1);
btnTowPage.NavigateUrl = String.Format("{0}{1}&pg={2}", absolutePath, queryString, 2);
btnThreePage.NavigateUrl = String.Format("{0}{1}&pg={2}", absolutePath, queryString, 3);
btnNextPage.NavigateUrl = String.Format("{0}{1}&pg={2}", absolutePath, queryString, 2);
btnLastPage.NavigateUrl = String.Format("{0}?pg={1}", absolutePath, pageCount);
}
btnOnePage.Enabled = false;
btnFirstPage.Visible = false;
btnPrevPage.Visible = false;
btnOnePage.Text = "1";
btnTowPage.Text = "2";
btnThreePage.Text = "3";
}
if (pageCount == pageIndex) // 是末页,不显示‘末页’和‘下一页’
{
btnOnePage.Text = Convert.ToString(PageIndex - 2);
btnTowPage.Text = Convert.ToString(PageIndex - 1);
btnThreePage.Text = PageIndex.ToString();
string absolutePath = this.Page.Request.Url.AbsolutePath;
if (queryString.Length == 0)
{
btnFirstPage.NavigateUrl = String.Format("{0}?pg={1}", absolutePath, 1);
btnOnePage.NavigateUrl = String.Format("{0}?pg={1}", absolutePath, PageIndex - 1);
btnTowPage.NavigateUrl = String.Format("{0}?pg={1}", absolutePath, PageIndex);
btnThreePage.NavigateUrl = String.Format("{0}?pg={1}", absolutePath, PageIndex + 1);
btnPrevPage.NavigateUrl = String.Format("{0}?pg={1}", absolutePath, PageIndex - 1);
btnNextPage.NavigateUrl = String.Format("{0}?pg={1}", absolutePath, PageIndex + 1);
btnLastPage.NavigateUrl = String.Format("{0}?pg={1}", absolutePath, pageCount);
}
else
{
btnFirstPage.NavigateUrl = String.Format("{0}{1}?pg={2}", absolutePath, queryString, 1);
btnOnePage.NavigateUrl = String.Format("{0}{1}&pg={2}", absolutePath, queryString, PageIndex - 2);
btnTowPage.NavigateUrl = String.Format("{0}{1}&pg={2}", absolutePath, queryString, PageIndex - 1);
btnThreePage.NavigateUrl = String.Format("{0}{1}&pg={2}", absolutePath, queryString, PageIndex);
btnPrevPage.NavigateUrl = String.Format("{0}{1}&pg={2}", absolutePath, queryString, PageIndex - 1);
btnNextPage.NavigateUrl = String.Format("{0}{1}&pg={2}", absolutePath, queryString, PageIndex);
btnLastPage.NavigateUrl = String.Format("{0}{1}&pg={2}", absolutePath, queryString, pageCount);
}
btnThreePage.Enabled = false;
btnLastPage.Visible = false;
btnNextPage.Visible = false;
}
if (pageIndex - 1 == 1) //是首页
{
btnFirstPage.Visible = false;
AddLink(pageCount);
}
if (pageIndex + 1 == pageCount) // 末页
{
btnLastPage.Visible = false;
AddLink(pageCount);
}
if (pageIndex > 2 && pageIndex < pageCount - 1) //中间页
{
AddLink(pageCount);
btnTowPage.Enabled = false;
}
if (pageCount <= 0)
{
pageCount = 1;
}
lblPageCount.Text = pageCount.ToString();
}
protected void AddLink(int pageCount)
{
btnOnePage.Text = Convert.ToString(PageIndex - 1);
btnTowPage.Text = PageIndex.ToString();
btnThreePage.Text = Convert.ToString(PageIndex + 1);
string absolutePath = this.Page.Request.Url.AbsolutePath;
if (queryString.Length == 0) // test.aspx?pg=1已测试
{
btnFirstPage.NavigateUrl = String.Format("{0}?pg={1}", absolutePath, 1);
btnOnePage.NavigateUrl = String.Format("{0}?pg={1}", absolutePath, PageIndex - 1);
btnTowPage.NavigateUrl = String.Format("{0}?pg={1}", absolutePath, PageIndex);
btnThreePage.NavigateUrl = String.Format("{0}?pg={1}", absolutePath, PageIndex + 1);
btnPrevPage.NavigateUrl = String.Format("{0}?pg={1}", absolutePath, PageIndex - 1);
btnNextPage.NavigateUrl = String.Format("{0}?pg={1}", absolutePath, PageIndex + 1);
btnLastPage.NavigateUrl = String.Format("{0}?pg={1}", absolutePath, pageCount);
}
else // test.aspx?h=0&pg=2 已测试
{
btnFirstPage.NavigateUrl = String.Format("{0}{1}&pg={2}", absolutePath, queryString, 1);
btnOnePage.NavigateUrl = String.Format("{0}{1}&pg={2}", absolutePath, queryString, PageIndex - 1);
btnTowPage.NavigateUrl = String.Format("{0}{1}&pg={2}", absolutePath, queryString, PageIndex);
btnThreePage.NavigateUrl = String.Format("{0}{1}&pg={2}", absolutePath, queryString, PageIndex + 1);
btnPrevPage.NavigateUrl = String.Format("{0}{1}&pg={2}", absolutePath, queryString, PageIndex - 1);
btnNextPage.NavigateUrl = String.Format("{0}{1}&pg={2}", absolutePath, queryString, PageIndex + 1);
btnLastPage.NavigateUrl = String.Format("{0}{1}&pg={2}", absolutePath,queryString, pageCount);
//btnNextPage.NavigateUrl = String.Format("{0}{1}&pg={2}", this.Page.Request.Url, queryString, PageIndex + 1);
//btnLastPage.NavigateUrl = String.Format("{0}?pg={1}", this.Page.Request.Url.AbsolutePath, pageCount);
}
}
#region 公告属性
public int PageIndex
{
get
{
if (Request.QueryString["pg"] != null)
{
int page = Convert.ToInt32(Request.QueryString["pg"]);
lblCurrentIndex.Text = page.ToString();
return page;
}
else
{
if (ViewState["PAGE_Index"] != null)
return Convert.ToInt32(ViewState["PAGE_Index"].ToString());
else
return 1;
}
}
set { ViewState["PAGE_Index"] = value; }
}
public Int32 RowCount
{
get { return Convert.ToInt32(ViewState["ROW_COUNT"]); }
set { ViewState["ROW_COUNT"] = value; }
}
public Int32 PageSize
{
get { return Convert.ToInt32(ViewState["PAGE_SIZE"]); }
set { ViewState["PAGE_SIZE"] = value; }
}
public bool DisplaySum
{
get { return Convert.ToBoolean(ViewState["DISPLAYSUM"]); }
set { ViewState["DISPLAYSUM"] = value; }
}
#endregion
}
相关文章推荐
- 使用ObjectDataSource 控件自定义自己的分页(vs2008新控件Listview)
- 用.NET编写自己的ActiveX 控件
- 自己开发的自定义分页控件
- 自己写的Winform分页控件
- 分页控件(easyUi自己封装过后的)
- .NET实现Repeater控件+AspNetPager控件分页
- .NET实现Repeater控件+AspNetPager控件分页
- 定制自己的datalist分页控件
- .net 服务器端自定义分页控件 简单示例
- 自己写的分页控件MyPager
- .NET基于分页控件实现真分页功能
- .NET实现Repeater控件+AspNetPager控件分页
- .NET分页控件下载
- 根据网上的资料自己写的一个对表格进行客户端排序的.NET用户控件
- yii中实现数组分页(用yii自带控件实现自己定义列表分页)
- 自己开发的自定义分页控件
- 【jquery模仿net控件】简单分页控件1.0,附上gridview使用测试
- 曾今的代码系列——自己的分页控件+存储过程实现分页
- 发一个自己写的.NET CF 控件 ImageButton
- 使用QTP的.NET插件扩展技术测试ComponentOne的ToolBar控件