一个用于gridview分页代码

一个用于gridview分页代码
一个公共类DataGridPager
using System;
using System.Data;
using System.Configuration;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
using System.Web.UI.WebControls;
/// <summary>
/// DataGridPager 的摘要说明
/// </summary>
///
public delegate void DDLChangedHandler(object sender, System.EventArgs e); //定义一个委托事件
public class DataGridPager
{
 public DataGridPager()
 {
  //
  // TODO: 在此处添加构造函数逻辑
  //
 }
    public event DDLChangedHandler DDLChanged;
    //在ItemCreate事件中创建自定义分页的链接按钮,并根据页数控制链接按钮的状态
    public void GridView_ItemCreated(object sender, System.Web.UI.WebControls.GridViewRowEventArgs e)
    {
        GridView dataGrid = (GridView)sender;
        if (e.Row.RowType == DataControlRowType.Pager)
        {
            dataGrid.AllowPaging = true;
            TableCell tc = e.Row.Cells[0];
            tc.HorizontalAlign = HorizontalAlign.Right;
            Label lblSpacer = new Label();
            lblSpacer.Width = 2;
            tc.Controls.AddAt(0, lblSpacer);
            DropDownList ddl = new DropDownList();
            ddl.AutoPostBack = true;
            ddl.Width = 45;
            ddl.ID = "ddl";
            ddl.Items.Add("");
            ddl.Items.Add("10");
            ddl.Items.Add("15");
            ddl.Items.Add("16");
            ddl.Items.Add("17");
            ddl.Items.Add("18");
            ddl.Items.Add("19");
            ddl.Items.Add("20");
            ddl.Items.Add("30");
            ddl.Items.Add("50");
            ddl.Items.Add("100");
            ddl.SelectedIndexChanged += new EventHandler(DDLChanged);
            ddl.SelectedItem.Text = dataGrid.PageSize.ToString();
            tc.Controls.AddAt(0, ddl);
            lblSpacer = new Label();
            lblSpacer.Width = 2;
            tc.Controls.AddAt(0, lblSpacer);
            lblSpacer = new Label();
            lblSpacer.Text = "每页数目";
            tc.Controls.AddAt(0, lblSpacer);
            lblSpacer = new Label();
            lblSpacer.Width = 10;
            tc.Controls.AddAt(0, lblSpacer);
            LinkButton lbLast = new LinkButton();
            lbLast.Text = "尾页";
            lbLast.CommandName = "last";
            if (dataGrid.PageIndex == dataGrid.PageCount - 1)
            {
                lbLast.Enabled = false;
            }
            else
            {
                lbLast.Enabled = true;
            }
            tc.Controls.AddAt(0, lbLast);
            lblSpacer = new Label();
            lblSpacer.Text = "  ";
            tc.Controls.AddAt(0, lblSpacer);
            LinkButton lbNext = new LinkButton();
            lbNext.Text = "下页";
            lbNext.CommandName = "next";
            if (dataGrid.PageIndex == dataGrid.PageCount - 1)
            {
                lbNext.Enabled = false;
            }
            else
            {
                lbNext.Enabled = true;
            }
            tc.Controls.AddAt(0, lbNext);

            lblSpacer = new Label();
            lblSpacer.Text = "  ";
            tc.Controls.AddAt(0, lblSpacer);
            LinkButton lbPrev = new LinkButton();
            lbPrev.Text = "上页";
            lbPrev.CommandName = "prev";
            if (dataGrid.PageIndex == 0)
            {
                lbPrev.Enabled = false;
            }
            else
            {
                lbPrev.Enabled = true;
            }
            tc.Controls.AddAt(0, lbPrev);

            lblSpacer = new Label();
            lblSpacer.Text = "  ";
            tc.Controls.AddAt(0, lblSpacer);
            LinkButton lbFirst = new LinkButton();
            lbFirst.Text = "首页";
            lbFirst.CommandName = "first";
            if (dataGrid.PageIndex == 0)
            {
                lbFirst.Enabled = false;
            }
            else
            {
                lbFirst.Enabled = true;
            }
            tc.Controls.AddAt(0, lbFirst);
            lblSpacer = new Label();
            lblSpacer.Width = 10;
            tc.Controls.AddAt(0, lblSpacer);
            lblSpacer = new Label();
            lblSpacer.Text = "当前第" + (dataGrid.PageIndex + 1) + "页,共" + dataGrid.PageCount.ToString() + "页";
            tc.Controls.AddAt(0, lblSpacer);
            e.Row.Controls.AddAt(0, tc);
        }
    }
    //处理链接按钮事件
    public void GridView_RowCommand(object source, System.Web.UI.WebControls.GridViewCommandEventArgs e)
    {
        GridView dataGrid = (GridView)source;
        string cmd = e.CommandName.ToString();
        switch (cmd)
        {
            case "next":
                dataGrid.PageIndex++;
                break;
            case "prev":
                dataGrid.PageIndex--;
                break;
            case "first":
                dataGrid.PageIndex = 0;
                break;
            case "last":
                dataGrid.PageIndex = dataGrid.PageCount - 1;
                break;
        }
    }

}
在将要使用公共类进行分页的页面中加入
 protected void GridView1_RowCreated(object sender, GridViewRowEventArgs e)
    {
        DataGridPager pager = new DataGridPager();
        pager.DDLChanged += new  DDLChangedHandler(ddlPageSize_Changed);
        pager.GridView_ItemCreated(sender, e);
  }

 protected void ddlPageSize_Changed(object sender,System.EventArgs e)
  {
            DropDownList ddl = (DropDownList)sender;
            GridView1.PageSize = Int32.Parse(ddl.SelectedItem.Text);
            GridView1.PageIndex = 0;
            BindData();//gridview数据绑定方法
  }
 
 
    protected void GridView1_RowCommand(object sender, GridViewCommandEventArgs e)
    {
        DataGridPager pager = new DataGridPager();
        pager.GridView_RowCommand(sender, e);
        BindData();//gridview数据绑定方法
    }
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值