您的位置:首页 > 其它

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

2014-02-28 11:03 246 查看
 前提页面:
<asp:GridView ID="GridView1" runat="server" 
            >
            <Columns>
                <asp:TemplateField  AccessibleHeaderText="1"></asp:TemplateField>
            </Columns>
           
        </asp:GridView>
        <asp:Button ID="first" runat="server" Text="首页" onclick="first_Click" />
    <asp:Button  runat="server" ID="lnkPrev" Text="up" onclick="lnkPrev_Click"/>
    <asp:Button  runat="server" ID="lnkNext" Text="down" onclick="lnkNext_Click"/>
    <asp:Button
        ID="last" runat="server" Text="尾页" onclick="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);
        }
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: