一个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

 

 


posted on 2010-10-01 17:28  骡子  阅读(157)  评论(0)    收藏  举报

导航