分页:对已提取数据进行分页

 前提页面:

<asp:GridView ID="GridView1" runat="server" 
            >
            <Columns>
                <asp:TemplateField  AccessibleHeaderText="1"></asp:TemplateField>
            </Columns>
           
        </asp:GridView>
        <asp:Button ID="first" runat="server" Text="首页" οnclick="first_Click" />
    <asp:Button  runat="server" ID="lnkPrev" Text="up" οnclick="lnkPrev_Click"/>
    <asp:Button  runat="server" ID="lnkNext" Text="down" οnclick="lnkNext_Click"/>
    <asp:Button
        ID="last" runat="server" Text="尾页" οnclick="last_Click" />
    <asp:TextBox ID="lblCurrentPage" runat="server"></asp:TextBox>
    </div>

 

C# 后置代码:

        int pageSize = 0;     //每页显示行数
        int nMax = 0;         //总记录数
        int pageCount = 0;    //页数=总记录数/每页显示行数
        static int pageCurrent = 1;   //当前页号
        int nCurrent = 0;      //当前记录行
        DataTable dtInfo = new DataTable();

        protected void Page_Load(object sender, EventArgs e)
        {
             dtInfo=InitDataSet();
             bind(dtInfo, 1);
           
        }
         private DataTable InitDataSet()
        {

 

            //

            DataTable dt = new DataTable();
            //创建表
            dt = new DataTable("SO");
            //创建列
            DataColumn dc = null;
            dc = dt.Columns.Add("ID", Type.GetType("System.Int32"));
            dc.AutoIncrement = true;//自动增加
            dc.AutoIncrementSeed = 1;//起始为1
            dc.AutoIncrementStep = 1;//步长为1
            dc.AllowDBNull = false;
            dt.Columns.Add("名称", typeof(System.String));
            dt.Columns.Add("单位", typeof(System.String));

            dt.Columns.Add("数量", typeof(System.String));
            dt.Columns.Add("单价", typeof(System.String));
            dt.Columns.Add("金额", typeof(System.String));
            
            //创建行,并循环赋值
            DataRow dr = null;


            for (int i = 0; i < 10; i++)
            {

                dr = dt.NewRow();
                dr["名称"] = 1;
                dr["单位"] = 2;

                dr["数量"] = 3;
                dr["单价"] = 4;
                dr["金额"] = 5;
                dt.Rows.Add(dr);
            }
            return dt;
          
        }
        protected void bind(DataTable dt, int CurPage)
        {
            if (dt.Rows.Count > 0)
            {
                PagedDataSource ps = new PagedDataSource();
                ps.DataSource = dt.DefaultView;
                ps.AllowPaging = true;
                int s = dt.Rows.Count;
               
                ps.PageSize = 3;
                if (s % (ps.PageSize) != 0)
                {
                    pageCount = (s + ps.PageSize) / (ps.PageSize);
                }
                else
                {
                    pageCount = s / (ps.PageSize);
                }
              
                ps.CurrentPageIndex = 1;

             
                ps.CurrentPageIndex = CurPage - 1;
                lblCurrentPage.Text = "当前第" + CurPage.ToString() + "页 共" + dt.Rows.Count.ToString() + " 条 每页" + ps.PageSize + "条";

                //把PagedDataSource 对象赋给datalist控件
                this.GridView1.DataSource = ps;
                this.GridView1.DataBind();
            }
        }

        protected void lnkPrev_Click(object sender, EventArgs e)
        {
            pageCurrent--;
            if (pageCurrent < 1)
            {  
                pageCurrent++;
                Response.Write("已是首页");
            }
           
            bind(dtInfo, pageCurrent);
        }

        protected void lnkNext_Click(object sender, EventArgs e)
        {
            pageCurrent += 1;
            if (pageCurrent > pageCount)
            {
                pageCurrent--;
                Response.Write("已是尾页");

            }
          
            bind(dtInfo, pageCurrent);

        }

        protected void first_Click(object sender, EventArgs e)
        {
            pageCurrent = 1;
            bind(dtInfo, pageCurrent);
        }

        protected void last_Click(object sender, EventArgs e)
        {
            pageCurrent = pageCount;
            bind(dtInfo, pageCurrent);
        }

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

fjza1168

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值