-1185767500

DataTable分页

    private readonly static double showPageRows = 10.0;//单页显示10条

   /// <summary>
        /// 绑定dt到gv
        /// </summary>
        /// <param name="gv"></param>
        /// <param name="dt"></param>
        private void BindGridview(GridView gv, DataTable dt)
        {
            gv.Columns.Clear();
            gv.DataSource = dt;

            BoundField bf;
            foreach (DataColumn col in dt.Columns)
            {
                bf = new BoundField();
                bf.HeaderText = GetLang(col.ColumnName);
                bf.DataField = col.ColumnName;
                gv.Columns.Add(bf);
            }

            gv.DataBind();
        }

  private void Paging(string pagingBtn)
        {
            int index = 0;
            int pageIndex = Convert.ToInt32(ddlPageIndex.SelectedValue);
            int pageCount = Convert.ToInt32(Math.Ceiling(count / showPageRows));//count是数据源的总行数

            if (pagingBtn == "first")
                index = 0;
            else if (pagingBtn == "pre")
            {
                if (pageIndex > 0)
                    index = pageIndex - 1;
                else
                    index = 0;
            }
            else if (pagingBtn == "next")
            {
                if (pageIndex < pageCount - 1)
                    index = pageIndex + 1;
                else
                    index = pageCount - 1;
            }
            else if (pagingBtn == "last")
                index = pageCount - 1;

            BindPaging(index);

            ddlPageIndex.SelectedValue = index.ToString();
        }

 

     /// <summary>
        /// 绑定分页下拉框
        /// </summary>
        /// <param name="PageCount">总页数</param>
        private void BindDdlPage(int PageCount)
        {
            ddlPageIndex.Items.Clear();
            for (int i = 0; i < PageCount; i++)
            {
                ddlPageIndex.Items.Add(new ListItem((i + 1).ToString(), i.ToString()));
            }
            lblPages.Text = "页,共" + PageCount.ToString() + "页";
        }

        /// <summary>
        /// 获取当前页显示的记录集
        /// </summary>
        /// <param name="dt">总记录集</param>
        /// <param name="pageIndex">显示第几页,从0开始</param>
        /// <returns>返回在当前页显示的记录集</returns>
        private DataTable getDtPage(DataTable dt, int pageIndex)
        {
            DataTable dtPage = dt.Clone();

            int rowCount = dt.Rows.Count;                                                   //记录总数
            int pageCount = Convert.ToInt32(Math.Ceiling(rowCount / showPageRows)); //总页数
            int showNum = Convert.ToInt32(showPageRows);                                //当前页显示的记录条数

            //当前页为最后一页时显示的记录条数
            if (pageIndex == pageCount - 1)
            {
                showNum = rowCount - (pageCount - 1) * (Convert.ToInt32(showPageRows));
            }

            for (int i = 0; i < showNum; i++)
            {
                dtPage.ImportRow(dt.Rows[pageIndex * (Convert.ToInt32(showPageRows)) + i]);
            }

            return dtPage;
        }

 

    /// <summary>
        /// dt添加汇总行
        /// </summary>
        /// <param name="dt"></param>
        private void AddSumRow(DataTable dt)
        {
            double sum = Convert.ToDouble(dt.Compute("SUM(number)", ""));

            DataRow drSum = dt.NewRow();
            drSum.ItemArray = new string[] { "汇总行", null, null, null, null, null, null, sum.ToString() };
           
            dt.Rows.InsertAt(drSum, 0);
        }

 

 

 

附:

         <table width="100%" style="background-color: #218DE0;position: absolute;"><tr><td>
                              <asp:Label ID="lblPageIndex" runat="server" Text="第" />
                              <asp:DropDownList ID="ddlPageIndex" runat="server" AutoPostBack="true" OnSelectedIndexChanged="ddlPageIndex_SelectedIndexChanged" />
                              <asp:Label ID="lblPages" runat="server" Text="页,共0页" />
                              <asp:LinkButton ID="lnkFirst" runat="server" Text="首页" CommandName="first" OnCommand="paging_Click" />
                              <asp:LinkButton ID="lnkPre" runat="server" Text="上一页" CommandName="pre" OnCommand="paging_Click" />
                              <asp:LinkButton ID="lnkNext" runat="server" Text="下一页" CommandName="next" OnCommand="paging_Click" />
                              <asp:LinkButton ID="lnkLast" runat="server" Text="末页" CommandName="last" OnCommand="paging_Click" />
                          </td></tr></table>

发表于 2013-05-17 10:43  1185767500  阅读(196)  评论(0编辑  收藏  举报
 

分类:

技术点:

相关文章: