/// <summary>
/// 带偏移量自定义分页方法
/// </summary>
/// <param name="PageSize">每页条数</param>
/// <param name="CurrentPage">当前页</param>
/// <param name="TotalCountRecord">总条数</param>
/// <param name="where">条件</param>
/// <returns></returns>
public string BuildPagers(int PageSize, int CurrentPage, int TotalCountRecord,string where)
{
//偏移量
int Step = 5;
int LeftNum = 0;//左值
int RightNum = 0;
string PageUrl = Request.FilePath;
int PageCount = (int)Math.Ceiling((double)(TotalCountRecord) / PageSize); //总页数
//当前页-步长 <1 则作值=1
if (CurrentPage - Step < 1)
{
LeftNum = 1;
}
else
{
LeftNum = CurrentPage - Step;
}
if (CurrentPage + Step > PageCount)
{
RightNum = PageCount;
}
else
{
RightNum = CurrentPage + Step;
}
StringBuilder OutPut = new StringBuilder();
string strUrl = "";
for (int i = LeftNum; i <= RightNum; i++)
{
if (i == CurrentPage)
{
OutPut.Append("<font style='margin-left:3px;' color=red>");
OutPut.Append(i.ToString());
OutPut.Append("</font>");
}
else
{
OutPut.Append("<a style='margin-left:3px;' href='");
OutPut.Append(PageUrl);
OutPut.Append("?" + where + "&page=");
OutPut.Append(i.ToString());
// OutPut.Append(strUrl);
OutPut.Append("'>");
OutPut.Append(i.ToString() + " ");
OutPut.Append("</a>");
}
}
if (CurrentPage > 1)
{
OutPut.Insert(0, string.Format("<a href='{0}?" + where + "&page={1}{2}'>上一页</a>", PageUrl, (CurrentPage - 1), strUrl));
}
if (CurrentPage < PageCount)
{
OutPut.Append("<a href='");
OutPut.Append(PageUrl);
OutPut.Append("?" + where + "&page=");
OutPut.Append(+CurrentPage + 1);
OutPut.Append(strUrl);
OutPut.Append("'>下一页</a></li>");
OutPut.Append("总记录数:<font color='red'>" + TotalCountRecord + "</font> 总页数:<font color='red'>" + PageCount + "</font>");
}
return OutPut.ToString();
}
private void Bind(int Page,string where)
{
str = BuildPagers(16, Page, GoodsFunBLL.GetGoodsListCount(where), where);
this.DataGoodsList.DataSource = GoodsFunBLL.GetGoodsByTypeIdList(16, Page,where);
this.DataGoodsList.DataBind();
}