#region GetPagedTable DataTable分页
/// <summary>
/// DataTable分页
/// </summary>
/// <param name="dt">DataTable</param>
/// <param name="PageIndex">页索引,注意:从1开始</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;
}
#endregion
附:分页代码计算方法:
int a=5;
int b=4;
int c;
if (a % b==0)
{
c = a / b;
}
else
{
c = a / b + 1;
}
Response.Write(c);
完整代码:
public string CaseBinding()
{
int QueryPageIndex = 1;
if (PageFunction.CehckQueryStringReturnTrueOrFalse("PageIndex"))
{
QueryPageIndex = PageFunction.CehckQueryString("PageIndex");
}
else
{
QueryPageIndex = 1;
}
int PageSize = 2;
int PageIndex = QueryPageIndex;
SQLServerDAL.Cases Cases1 = new SQLServerDAL.Cases();
DataTable dat =Cases1.GetData();
StringBuilder sb = new StringBuilder();
int PageCount =0;
if (dat.Rows.Count % PageSize == 0)
{
PageCount = dat.Rows.Count / PageSize;
}
else
{
PageCount = dat.Rows.Count / PageSize + 1;
}
int DataCount=dat.Rows.Count;
dat = GetPagedTable(dat, PageIndex, PageSize);
if (dat == null || dat.Rows.Count == 0)
{
sb.Append("");
}
else
{
for (int i = 0; i < dat.Rows.Count; i++)
{
if (i % 2 == 0)
{
//行开始
sb.Append("<div class='case_1'>\n");
//列开始
sb.Append("<div class='case_left'>\n");
}
else
{
//列开始
sb.Append("<div class='case_right'>\n");
}
//图片开始
sb.Append("<div class='case_pic'>\n");
sb.Append("<a href='case_introduce.asp' target='_blank'>");
sb.Append("<img src='"+dat.Rows[i]["M_CaseUrlImage"].ToString()+"'></a>\n");
//图片结束
sb.Append("</div>\n");
//文字开始
sb.Append("<div class='case_text'>\n");
sb.Append("<p class='case_name'>");
sb.Append(dat.Rows[i]["M_CaseTitle"].ToString());
sb.Append("</p>");
sb.Append("<p>" + StrFunction.GetFirstString(dat.Rows[i]["M_CaseContent"].ToString(),120 )+ "</p>");
sb.Append("<p><a href='#'><img src='images/case_ck.jpg' border='0' style='width: 91px'></a></p>\n");
//文字结束
sb.Append("</div>\n");
//列结束
sb.Append("</div>\n");
if (i % 2 != 0)
{
//行结束
sb.Append("</div>\n\n");
}
}
if(PageIndex==1)
{
this.linkFirst.Enabled = false;
this.linkPre.Enabled = false;
}
else if(PageIndex>=PageCount)
{
this.LinkNext.Enabled = false;
this.linkLast.Enabled = false;
}
this.lblPageCount.Text = DataCount.ToString();
this.linkFirst.NavigateUrl="Cases.aspx?PageIndex=1";
this.linkLast.NavigateUrl = "Cases.aspx?PageIndex=" + (PageCount/2).ToString();
this.LinkNext.NavigateUrl = "Cases.aspx?PageIndex=" + (PageIndex+1).ToString();
this.linkPre.NavigateUrl = "Cases.aspx?PageIndex=" + (PageIndex - 1).ToString();
}
return sb.ToString();
}
#region GetPagedTable DataTable分页
/// <summary>
/// DataTable分页
/// </summary>
/// <param name="dt">DataTable</param>
/// <param name="PageIndex">页索引,注意:从1开始</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;
}
#endregion