数据分页操作
/// <summary>
/// datatable分页
/// </summary>
/// <param name="dt">源datatable</param>
/// <param name="PageIndex">第几页</param>
/// <param name="PageSize">每页记录数</param>
/// <returns></returns>
public DataTable GetPagedTable(DataTable dt, int PageIndex, int PageSize)
{
if (PageIndex == 0)
return dt;
DataTable newdt = dt.Copy();
newdt.Clear();
int rowbegin = (PageIndex - 1) * PageSize;
int rowend = PageIndex * PageSize;
if (rowbegin >= dt.Rows.Count)
return newdt;
if (rowend > dt.Rows.Count)
rowend = dt.Rows.Count;
for (int i = rowbegin; i <= rowend - 1; i++)
{
DataRow newdr = newdt.NewRow();
DataRow dr = dt.Rows[i];
foreach (DataColumn column in dt.Columns)
{
newdr[column.ColumnName] = dr[column.ColumnName];
}
newdt.Rows.Add(newdr);
}
return newdt;
}
滚动条操作:
private void sv_ScrollChanged(object sender, ScrollChangedEventArgs e)
{
try
{
ScrollViewer sv = e.OriginalSource as ScrollViewer;
if (sv != null && e.VerticalChange != 0)
{
if (sv.VerticalOffset == sv.ExtentHeight - sv.ViewportHeight)//到底
{
//TODO:加载下条数据
if (SteamDataTable != null)
{
Pgindex++;
AddData(GetPagedTable(SteamDataTable, Pgindex, PageSize));
}
}
}
}
catch
{ }
}
转载:https://www.cnblogs.com/SeNaiTes/p/10239847.html