gridview自定义分页样式

gridview自定义分页样式
2009年12月12日 星期六 13:40


先看效果


<一>在aspx页面中添加 <PagerTemplate>代码如下

    <PagerTemplate>
<table width="800px" style="border: 0px; border-style: ridge;" align="center">
<tr>
<td style="border-bottom-style: ridge; width: 100%; text-align: center">
<asp:Label ID="lblCurrrentPage" runat="server" ForeColor="#CC3300"></asp:Label>
<span>移至</span>
<asp:DropDownList ID="page_DropDownList" runat="server" AutoPostBack="True" OnSelectedIndexChanged="page_DropDownList_SelectedIndexChanged">
</asp:DropDownList>
<span>页</span>
<asp:LinkButton ID="lnkBtnFirst" CommandArgument="First" CommandName="page" runat="server">第一页</asp:LinkButton>
<asp:LinkButton ID="lnkBtnPrev" CommandArgument="prev" CommandName="page" runat="server">上一页</asp:LinkButton>
<asp:LinkButton ID="lnkBtnNext" CommandArgument="Next" CommandName="page" runat="server">下一页</asp:LinkButton>
<asp:LinkButton ID="lnkBtnLast" CommandArgument="Last" CommandName="page" runat="server">最后一页</asp:LinkButton>
</td>
</tr>
</table>
</PagerTemplate>



<二>在CS文件中添加GridView的DataBound事件和page_DropDownList_SelectedIndexChanged事件如下

protected void GridView1_DataBound(object sender, EventArgs e)
{


//取得显示分页界面的那一行
GridViewRow pagerRow = GridView1.BottomPagerRow;
if (pagerRow!=null)
{
//取得第一页。上一页。下一页。最后一页的超级链接
LinkButton lnkBtnFirst = (LinkButton)pagerRow.Cells[0].FindControl("lnkBtnFirst");
LinkButton lnkBtnPrev = (LinkButton)pagerRow.Cells[0].FindControl("lnkBtnPrev");
LinkButton lnkBtnNext = (LinkButton)pagerRow.Cells[0].FindControl("lnkBtnNext");
LinkButton lnkBtnLast = (LinkButton)pagerRow.Cells[0].FindControl("lnkBtnLast");

//设置何时应该禁用第一页。上一页。下一页。最后一页的超级链接
if (GridView1.PageIndex == 0)
{
lnkBtnFirst.Enabled = false;
lnkBtnPrev.Enabled = false;
}
else if (GridView1.PageIndex == GridView1.PageCount - 1)
{
lnkBtnNext.Enabled = false;
lnkBtnLast.Enabled = false;
}
else if (GridView1.PageCount <= 0)
{
lnkBtnFirst.Enabled = false;
lnkBtnPrev.Enabled = false;
lnkBtnNext.Enabled = false;
lnkBtnLast.Enabled = false;
}
//从显示分页的行中取得用来显示页次与切换分页的DropDownList控件
DropDownList pageList = (DropDownList)pagerRow.Cells[0].FindControl("page_DropDownList");

//根据欲显示的数据源的总页数,创建DropDownList控件的下拉菜单内容
if (pageList != null)
{
int intPage;
for (intPage = 0; intPage <= GridView1.PageCount - 1; intPage++)
{
//创建一个ListItem对象来存放分页列表
int pageNumber = intPage + 1;
ListItem item = new ListItem(pageNumber.ToString());

//交替显示背景颜色
switch (pageNumber % 2)
{
case 0: item.Attributes.Add("style", "background:#CDC9C2;");
break;
case 1: item.Attributes.Add("style", "color:red; background:white;");
break;
}
if (intPage == GridView1.PageIndex)
{
item.Selected = true;
}
pageList.Items.Add(item);
}
}
//显示当前所在页数与总页数
Label pagerLabel = (Label)pagerRow.Cells[0].FindControl("lblCurrrentPage");

if (pagerLabel != null)
{

int currentPage = GridView1.PageIndex + 1;
pagerLabel.Text = "第" + currentPage.ToString() + "页(共" + GridView1.PageCount.ToString() + " 页)";

}
}

}


protected void page_DropDownList_SelectedIndexChanged(object sender, EventArgs e)
{

//取得显示分页界面的那一行
GridViewRow pagerRow = GridView1.BottomPagerRow;
//从显示页数的行中取得显示页数的DropDownList控件
DropDownList pageList = (DropDownList)pagerRow.Cells[0].FindControl("page_DropDownList");
//将GridView移至用户所选择的页数
GridView1.PageIndex = pageList.SelectedIndex;

//getData();不用数据源需要绑定
}







<三>注意,须设置 AllowPaging="True"
以上采用数据源控件绑定数据;
如代码绑定则需要添加如下代码
if (!IsPostBack)
{
getData();//绑定数据方法
}

//分页
protected void GridView1_PageIndexChanging(object sender, GridViewPageEventArgs e)
{
GridView1.PageIndex = e.NewPageIndex;
getData();
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值