/// <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 <= ? : currentPage);//如果PageNo<=0,则改为首页
//----克隆表结构到新表
var onePageTable = dtAll.Clone();
//----取出1页数据到新表
var rowBegin = (currentPage - ) * pageSize;
var rowEnd = currentPage * pageSize;
rowEnd = (rowEnd > totalCount ? totalCount : rowEnd);
for (var i = rowBegin; i <= rowEnd - ; 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 > ? : );
return totalPage;
}