zoukankan      html  css  js  c++  java
  • C#-DataTable分页代码

            /// <summary>
            /// DataTable分页并取出指定页码的数据
            /// </summary>
            /// <param name="dtAll">DataTable</param>
            /// <param name="pageNo">页码,注意:从1开始</param>
            /// <param name="pageSize">每页条数</param>
            /// <returns>指定页码的DataTable数据</returns>
            private DataTable getOnePageTable(DataTable dtAll, int pageNo, int pageSize)
            {
                var totalCount = dtAll.Rows.Count;
                var totalPage = getTotalPage(totalCount, pageSize);
                var currentPage = pageNo;
                currentPage = (currentPage > totalPage ? totalPage : currentPage);//如果PageNo过大,则较正PageNo=PageCount
                currentPage = (currentPage <= 0 ? 1 : currentPage);//如果PageNo<=0,则改为首页
                //----克隆表结构到新表
                var onePageTable = dtAll.Clone();
                //----取出1页数据到新表
                var rowBegin = (currentPage - 1) * pageSize;
                var rowEnd = currentPage * pageSize;
                rowEnd = (rowEnd > totalCount ? totalCount : rowEnd);
                for (var i = rowBegin; i <= rowEnd - 1; i++)
                {
                    var newRow = onePageTable.NewRow();
                    var oldRow = dtAll.Rows[i];
                    foreach (DataColumn column in dtAll.Columns)
                    {
                        newRow[column.ColumnName] = oldRow[column.ColumnName];
                    }
                    onePageTable.Rows.Add(newRow);
                }
                return onePageTable;
            }
    
            /// <summary>
            /// 返回分页后的总页数
            /// </summary>
            /// <param name="totalCount">总记录条数</param>
            /// <param name="pageSize">每页显示条数</param>
            /// <returns>总页数</returns>
            public int getTotalPage(int totalCount, int pageSize)
            {
                var totalPage = (totalCount / pageSize) + (totalCount % pageSize > 0 ? 1 : 0);
                return totalPage;
            }
  • 相关阅读:
    MySQL
    Date和String转换
    Spring-test事务自动回滚
    java多线程:生产者和消费者模式(wait-notify) : 单生产和单消费
    制作ISO文件 与 提取ISO文件
    windows10 更换密码
    win 添加网络位置共享 && win 实用快捷键
    ubuntu16 安装mysql5.7
    ubuntu16 中chkconfig 命令不能使用
    mysql 5.7 初始化密码或随机密码
  • 原文地址:https://www.cnblogs.com/SummerRain/p/5540844.html
Copyright © 2011-2022 走看看