您的位置:首页 > 编程语言 > ASP

ASP.NET GridView 自定义分页

2010-03-15 18:27 447 查看
<asp:GridView ID="GridView2" runat="server" AllowPaging="True">
<PagerTemplate>
<div id="main">
<table>
<tr>
<td style="text-align:left;">
<div id="info">  页次:<asp:Label ID="lblPageCurrent" runat="server" Text="1" CssClass="txtInfo"></asp:Label>
/<asp:Label ID="lblPageCount" runat="server" Text="1"></asp:Label>  
共 <asp:Label ID="lblPageRow" runat="server" Text="1" CssClass="txtInfo"></asp:Label> 条记录
</div>
</td>
<td style="text-align:right;">
<div id="page">
<asp:LinkButton ID="btnFirst" runat="server" CssClass="link" CommandName="Pager" CommandArgument="First" OnCommand="NavigateToPage">[首页]</asp:LinkButton> 
<asp:LinkButton ID="btnPrev" runat="server" CssClass="link" CommandName="Pager" CommandArgument="Prev" OnCommand ="NavigateToPage">[前一页]</asp:LinkButton> 
<asp:LinkButton ID="btnNext" runat="server" CssClass="link" CommandName="Pager" CommandArgument="Next" OnCommand="NavigateToPage">[下一页]</asp:LinkButton> 
<asp:LinkButton ID="btnLast" runat="server" CssClass="link" CommandName="Pager" CommandArgument="Last" OnCommand="NavigateToPage">[尾页]</asp:LinkButton>  
</div>
</td>
</tr>
</table>
</div>
</PagerTemplate>
<FooterStyle BackColor="#507CD1" Font-Bold="True" ForeColor="White" />
<PagerStyle BackColor="#2461BF" ForeColor="White" HorizontalAlign="Center" />
<SelectedRowStyle BackColor="#D1DDF1" ForeColor="#333333" Font-Bold="True" />
<HeaderStyle BackColor="#507CD1" Font-Bold="True" ForeColor="White" />
<AlternatingRowStyle BackColor="White" />
<RowStyle BackColor="#EFF3FB" />
<EditRowStyle BackColor="#2461BF" />
</asp:GridView>

<asp:Label ID="labmessage" runat="server"></asp:Label>

设计页面截图为:





后台代码为:

protected void GridViewBinding()
{
rowcount = ds.Tables[0].Rows.Count;
gridview1.DataSource = ds;
gridview1.DataBind();
}

protected void NavigateToPage(object sender, CommandEventArgs e)
{
switch (e.CommandArgument.ToString())
{
case "First":
this.gridview1.PageIndex = 0;
break;
case "Prev":
if (this.gridview1.PageIndex > 0)
this.gridview1.PageIndex -= 1;
break;
case "Next":
if (this.gridview1.PageIndex < (this.gridview1.PageCount - 1))
this.gridview1.PageIndex += 1;
break;
case "Last":
this.gridview1.PageIndex = this.gridview1.PageCount - 1;
break;
}
GridViewBinding();
}

protected void gridview1_DataBound(object sender, EventArgs e)
{
if (ds.Tables[0].Rows.Count!=0)
{
GridViewRow pagerRow = gridview1.BottomPagerRow;
gridview1.BottomPagerRow.Visible = true;

//获取Label实例,显示页次信息
Label lblCurrent = (Label) pagerRow.Cells[0].FindControl("lblPageCurrent");
Label lblCount = (Label) pagerRow.Cells[0].FindControl("lblPageCount");
Label lblRow = (Label) pagerRow.Cells[0].FindControl("lblPageRow");
//获取按钮实例,为了控制其是否可用
LinkButton btnFirstTem = (LinkButton) pagerRow.Cells[0].FindControl("btnFirst");
LinkButton btnPrevTem = (LinkButton) pagerRow.Cells[0].FindControl("btnPrev");
LinkButton btnNextTem = (LinkButton) pagerRow.Cells[0].FindControl("btnNext");
LinkButton btnLastTem = (LinkButton) pagerRow.Cells[0].FindControl("btnLast");

if (lblCurrent != null)
lblCurrent.Text = (this.gridview1.PageIndex + 1).ToString();
if (lblCount != null)
lblCount.Text = this.gridview1.PageCount.ToString();
if (lblRow != null)
lblRow.Text = rowcount.ToString();

if (this.gridview1.PageIndex == 0)
{
btnFirstTem.Enabled = false;
btnPrevTem.Enabled = false;
//只有一页,所有分页按钮不可用
if (this.gridview1.PageCount == 1)
{
btnNextTem.Enabled = false;
btnLastTem.Enabled = false;
}
}
else if (this.gridview1.PageIndex == (this.gridview1.PageCount - 1))
{
btnNextTem.Enabled = false;
btnLastTem.Enabled = false;
}
}
else
{
labmessage.Text = "无相关记录!";
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: