方法一:
前台页面:
<table border="0" cellpadding="0" cellspacing="0" width="100%">
<tr>
<td align="center" colspan="3" width="100%" style="height: 24px">
<asp:Label ID="lbl1" runat="server" Text="[每页"></asp:Label><asp:Label ID="lblPageSize"
runat="server"></asp:Label><asp:Label ID="lblSize" runat="server" Text="条,"></asp:Label><asp:Label
ID="lblCurrentCount" runat="server" Text="]"></asp:Label>
<asp:LinkButton ID="lbtnFirst" runat="server" OnClick="lbtnFirst_Click" CausesValidation="False">
<asp:Label ID="lblFirst" runat="server" Text="第一页"></asp:Label></asp:LinkButton>
<asp:LinkButton ID="lbtnPrev" runat="server" OnClick="lbtnPrev_Click" CausesValidation="False">
<asp:Label ID="lblprevious" runat="server" Text="上一页"></asp:Label></asp:LinkButton>
<asp:LinkButton ID="lbtnNext" runat="server" OnClick="lbtnNext_Click" CausesValidation="False">
<asp:Label ID="lblNext" runat="server" Text="下一页"></asp:Label></asp:LinkButton>
<asp:LinkButton ID="lbtnEnd" runat="server" OnClick="lbtnEnd_Click" CausesValidation="False">
<asp:Label ID="lblLast" runat="server" Text="最后一页"></asp:Label></asp:LinkButton>
<asp:Label ID="lblGo" runat="server" Text="跳转到第" Font-Names="幼圆"></asp:Label><asp:DropDownList
ID="drplGo" runat="server" AutoPostBack="True" OnSelectedIndexChanged="drplGo_SelectedIndexChanged">
</asp:DropDownList>
<asp:Label ID="lbl2" runat="server" Text="页" Font-Names="幼圆"></asp:Label>
</td>
</tr>
</table>
后台:
private GridView gridView1 = new GridView();
public GridView GridView_Pager
{
get { return gridView1; }
set { gridView1 = value; }
}
private int intPageSize; //每页行数
private int intPageIndex; //当前页
private int intPageCount; //总页数
protected void Page_Load(object sender, EventArgs e)
{
this.lblLast.Text = "最后一页";
this.lblNext.Text = "下一页";
this.lblprevious.Text = "上一页";
this.lblFirst.Text = "第一页";
this.lblSize.Text = "条,";
this.lbl2.Text = "页";
this.lbl1.Text = "每页";
this.lblGo.Text = "跳转至第";
if (IsPostBack)
{
PagerMessage();
}
else
{
SetMessage();
RefreshMessage();
}
}
//刷新
public void RefreshMessage()
{
gridView1.PageIndex = 0;
PagerMessage();
//PagerFreshCheck();2006-06-20
//drop down list
//清除下拉菜单的页码
drplGo.Items.Clear();
for (int i = 1; i < intPageCount + 1; i++)
{
drplGo.Items.Add(i.ToString());
}
drplGo.DataBind();
if (drplGo.Items.Count > 0)
{
drplGo.SelectedIndex = 0;
}
//gridView1.DataBind();
}
//获得页数信息
private void PagerMessage()
{
//read value from gridview
//总页数
intPageCount = gridView1.PageCount;
if (intPageCount == 0 && gridView1.Rows.Count != 0)
{
intPageCount = 1;
}
intPageSize = gridView1.PageSize;
//获得当前页
intPageIndex = gridView1.PageIndex;
//set lable value
lblPageSize.Text = intPageSize.ToString().Trim();
if (intPageCount == 0)
{
lblCurrentCount.Text = "0/0";
}
else
{
lblCurrentCount.Text = ((int)(intPageIndex + 1)).ToString().Trim() + "/" + intPageCount.ToString().Trim();
}
}
private void SetMessage()
{
PagerMessage();
try
{
drplGo.SelectedIndex = intPageIndex;
}
catch { }
}
/// <summary>
/// 判断是否为第一页或者最后一页并屏蔽相应的翻页Button
/// </summary>
private void PagerFreshCheck()
{
if (intPageIndex == 0)
{
lbtnFirst.Enabled = false;
lbtnPrev.Enabled = false;
}
else
{
lbtnFirst.Enabled = true;
lbtnPrev.Enabled = true;
}
if (intPageIndex == intPageCount - 1)
{
lbtnNext.Enabled = false;
lbtnEnd.Enabled = false;
}
else
{
lbtnNext.Enabled = true;
lbtnEnd.Enabled = true;
}
}
protected void lbtnNext_Click(object sender, EventArgs e)
{
//下一页
if (intPageIndex < intPageCount - 1)
{
gridView1.PageIndex = gridView1.PageIndex + 1;
gridView1.DataBind();
SetMessage();
}
}
protected void lbtnPrev_Click(object sender, EventArgs e)
{
//上一页
if (intPageIndex > 0)
{
gridView1.PageIndex = gridView1.PageIndex - 1;
gridView1.DataBind();
SetMessage();
}
}
protected void lbtnFirst_Click(object sender, EventArgs e)
{
//第一页
if (intPageIndex > 0)
{
gridView1.PageIndex = 0;
gridView1.DataBind();
SetMessage();
}
}
protected void lbtnEnd_Click(object sender, EventArgs e)
{
//最后一页
if (intPageIndex < intPageCount - 1)
{
gridView1.PageIndex = intPageCount - 1;
gridView1.DataBind();
SetMessage();
}
}
protected void drplGo_SelectedIndexChanged(object sender, EventArgs e)
{
//GO
int intIndex = drplGo.SelectedIndex;
if (intPageIndex != intIndex)
{
gridView1.PageIndex = intIndex;
gridView1.DataBind();
SetMessage();
}
}
方法二:
<asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="false" AllowPaging="true"
Font-Names="宋体" ondatabound="GridView1_DataBound" Width="70%"
>
<FooterStyle BackColor="#C6C3C6" ForeColor="Black" />
<Columns>
<asp:BoundField DataField="PagingId" HeaderText="编号" />
<asp:HyperLinkField DataNavigateUrlFields="PagingId" DataNavigateUrlFormatString="~/Jump.aspx?id={0}"
DataTextField="PagingName" HeaderText="名字" FooterStyle-Font-Underline="false"
ControlStyle-CssClass="text" />
<asp:BoundField DataField="PagingContent" HeaderText="内容" />
</Columns>
<PagerTemplate>
<table style="width: 90%">
<tr>
<td align="center" colspan="3">
[每页<asp:Label ID="lblPageSize" runat="server" Text="<%# GridView1.PageSize %>"></asp:Label>条,
<asp:Label ID="lblCurrentCount" runat="server" Text="<%# (int)(GridView1.PageIndex+1) %>"></asp:Label>/
<asp:Label ID="lblPageCount" runat="server" Text="<%# GridView1.PageCount %>"></asp:Label>]
<asp:LinkButton ID="lbtnFirst" runat="server" CausesValidation="False" OnClick="lbtnFirst_Click"
Text="第一页" CssClass="text"></asp:LinkButton>
<asp:LinkButton ID="lbtnPrev" runat="server" CausesValidation="False" OnClick="lbtnPrev_Click" CssClass="text">上一页</asp:LinkButton>
<asp:LinkButton ID="lbtnNext" runat="server" CausesValidation="False" OnClick="lbtnNext_Click" CssClass="text">下一页</asp:LinkButton>
<asp:LinkButton ID="lbtnEnd" runat="server" CausesValidation="False" OnClick="lbtnEnd_Click" CssClass="text">最后一页</asp:LinkButton>
跳转到第<asp:DropDownList ID="drplGo" runat="server" AutoPostBack="True" OnSelectedIndexChanged="drplGo_SelectedIndexChanged">
</asp:DropDownList>页
</td>
</tr>
</table>
</PagerTemplate>
</asp:GridView>
后台:
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
data_bind();
}
}
public void data_bind()
{
this.GridView1.DataSource = Bind();
this.GridView1.DataBind();
}
public DataTable Bind()
{
SqlConnection conn = new SqlConnection("server=.;database=Example;uid=sa;pwd=8959288;");
DataTable dt = new DataTable();
string sql = "select * from Paging";
SqlDataAdapter da = new SqlDataAdapter(sql,conn);
da.Fill(dt);
return dt;
}
protected void lbtnFirst_Click(object sender, EventArgs e)
{
GridView1.EditIndex = -1;
GridView1.PageIndex = 0;
data_bind();
}
protected void lbtnPrev_Click(object sender, EventArgs e)
{
GridView1.EditIndex = -1;
if (GridView1.PageIndex > 0)
{
GridView1.PageIndex--;
data_bind();
}
else
{
data_bind();
}
}
protected void lbtnNext_Click(object sender, EventArgs e)
{
GridView1.EditIndex = -1;
GridView1.PageIndex++;
data_bind();
}
protected void lbtnEnd_Click(object sender, EventArgs e)
{
GridView1.EditIndex = -1;
GridView1.PageIndex = GridView1.PageCount - 1;
data_bind();
}
protected void drplGo_SelectedIndexChanged(object sender, EventArgs e)
{
GridView1.EditIndex = -1;
GridViewRow pagerRow = GridView1.BottomPagerRow;
DropDownList pageList = (DropDownList)pagerRow.Cells[0].FindControl("drplGo");
GridView1.PageIndex = pageList.SelectedIndex;
data_bind();
}
protected void GridView1_DataBound(object sender, EventArgs e)
{
GridViewRow pagerRow = GridView1.BottomPagerRow;
if (GridView1.Rows.Count > 0)
{
//翻页找出最多页
DropDownList pageList = (DropDownList)pagerRow.Cells[0].FindControl("drplGo");
if (pageList != null)
{
for (int i = 0; i < GridView1.PageCount; i++)
{
int pageNumber = i + 1;
ListItem item = new ListItem(pageNumber.ToString());
if (i == GridView1.PageIndex)
{
item.Selected = true;
}
pageList.Items.Add(item);
}
}
}
}