一个Label搞定分页
网上的分页代码搜搜一大堆。。。
不过大多数都有多个label或hypelink构成。。。
前段时间做一个小网站时。。。
用一个Label和DataList将其搞定。。。
以后用起来就方便来了。。。
不过缺点还是明显的。。。。
数据量一大。。。
速度就会慢。。。
——————————————————————————
code:
代码
#region 分页数据绑定
/// <summary>
/// datalist分页绑定
/// </summary>
/// <param name="list">datalistID</param>
/// <param name="label"></param>
/// <param name="StartIndex">起始页码</param>
/// <param name="PageSize">每页大小</param>
/// <param name="sql">sql查询语句</param>
public void dataList(ref DataList list, ref Label label, int StartIndex, int PageSize, string sql)
{
ShowBottomUrl(ref label, PageSize, sql, StartIndex);
//获取startIndex页的数据
DataSet ds = new DataSet();
dbconn.Open();
OleDbDataAdapter adapter = new OleDbDataAdapter(sql, dbconn);
adapter.Fill(ds, StartIndex * PageSize, PageSize, "dt0");
list.DataSource = ds.Tables["dt0"].DefaultView;
list.DataBind();
dbconn.Close();
}
/// <summary>
/// 显示文章列表的页码
/// </summary>
public void ShowBottomUrl(ref Label Label1, int pagesize, string strsql, int ArticlePagePageID)
{
//每页显示数据量
int PageSize = pagesize;
//共几条
int TotalNums = totalData(strsql);
//总页数
int MaxArticlePages = getTotalPage(TotalNums, pagesize);
string HtmlFirstString = "";
string HtmlPrevString = "";
string HtmlNextString = "";
string HtmlLastString = "";
string HtmlSelectString = "";
if (TotalNums != 0)
{
if (ArticlePagePageID == 0)
{
HtmlFirstString = " 首页";
}
else
{
HtmlFirstString = " <a href='?PageID=1'>首页</a>";
}
if (ArticlePagePageID > 0)
{
HtmlPrevString = " <a href='?PageID=" + ArticlePagePageID + "'>上一页</a>";
}
else
{
HtmlPrevString = " 上一页";
}
if (ArticlePagePageID < (MaxArticlePages - 1))
{
HtmlNextString = " <a href='?PageID=" + (ArticlePagePageID + 2) + "'>下一页</a>";
}
else
{
HtmlNextString = " 下一页";
}
if (ArticlePagePageID != (MaxArticlePages - 1))
{
HtmlLastString = " <a href='?PageID=" + MaxArticlePages + "'>尾页</a> ";
}
else
{
HtmlLastString = " 尾页 ";
}
HtmlSelectString = "<select onchange=\"javascript:window.location=this.value\">";
for (int i = 1; i <= MaxArticlePages; i++)
{
if (i == (ArticlePagePageID+1))
{
HtmlSelectString += "<option value=?PageID=" + i + " selected>第" + i + "页</option>";
}
else
{
HtmlSelectString += "<option value=?PageID=" + i + ">第" + i + "页</option>";
}
}
HtmlSelectString += "</select>";
Label1.Text = "共有<font color=red><b>" + TotalNums + "</b></font>条记录 每页显示<font color=red><b>" + PageSize + "</b></font> 条 共<font color=red><b>" + MaxArticlePages + "</b></font>页 当前页 <font color=red><b>" + (ArticlePagePageID + 1) + "</b></font>/" + MaxArticlePages +
"页" + HtmlFirstString + HtmlPrevString + HtmlNextString + HtmlLastString + HtmlSelectString;
}
else
{
Label1.Text = "<font color=red><b>对不起,暂时还没有项目</b></font>";
}
}
/// <summary>
/// 得到数据总量
/// </summary>
/// <param name="strsql"></param>
/// <returns></returns>
public int totalData(string strsql)
{
DataTable dt = new DataTable();
getDataTable(strsql, ref dt);
return dt.Rows.Count;
}
/// <summary>
/// 计算总页数
/// </summary>
/// <param name="TotalNums"></param>
/// <param name="PageSize"></param>
/// <returns></returns>
public int getTotalPage(int TotalNums, int PageSize)
{
int totalPage = 0;
if (TotalNums % PageSize == 0)
{
totalPage = TotalNums / PageSize;
}
else
{
totalPage = TotalNums / PageSize + 1;
}
return totalPage;
}
#endregion

浙公网安备 33010602011771号