* ADO.NET中DataTable 分页*
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);
currentPage = (currentPage <= 0 ? 1 : currentPage);
var onePageTable = dtAll.Clone();
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;
}
public int getTotalPage(int totalCount, int pageSize)
{
var totalPage = (totalCount / pageSize) + (totalCount % pageSize > 0 ? 1 : 0);
return totalPage;
}