ASP.NET关于分页 工具类:DoFenye

     Asp.net提供了三个功能强大的列表控件:DataGrid、DataList和Repeater控件,但其中只有DataGrid控件提供分页功能。相对DataGrid,DataList和Repeater控件具有更高的样式自定义性,所以很多时候我们喜欢使用DataList或Repeater控件来显示数据。

 1、写一个方法存储过程,根据传入的页数返回需要显示的数据表(DataTable)
 2、使用PagedDataSource类

1,分页方法:

A,系统自带分页工具:

  PagedDataSource

B,手写分页方法1

  DoFenye类 此工具返回每页项及返回Html操作代码。 

 

代码
public class FenYe
{
/// <summary>
/// 传入要分页的泛型可枚举列表及参数,返回本页要显示的内容
/// </summary>
/// <typeparam name="T">列表元素的类</typeparam>
/// <param name="ielist">要进行分页的枚举列表</param>
/// <param name="index">当前页数</param>
/// <param name="pageSize">每页数量</param>
/// <returns>返回本页的数据列表</returns>
public IEnumerable<T> FenYeIEnumerable<T>(IEnumerable<T> ielist, int index, int pageSize) where T : class
{
if (index - 1 == 0)
{
index
= 1;
}
return ielist.Skip<T>((index - 1) * pageSize).Take<T>(pageSize);
}

/// <summary>
/// 传入参数:总数量,第几页,PostBackUrl,每页数量
/// </summary>
/// <param name="count">列表项总数</param>
/// <param name="page">第几页</param>
/// <param name="postbackurl">Postbackurl</param>
/// <param name="pageSize">每页项数</param>
/// <returns>返回生成的Html 字符串</returns>
public string DoFenYe(int count, int page, string postbackurl, int pageSize)
{
string fenyeString = "";
string fuhao;
int total = 0;
if (count < pageSize) //每页显示数量不足时
{
total
= 1;
}
else if (count % pageSize == 0)
{
total
= count / pageSize;
}
else
{
total
= count / pageSize+1;
}
fenyeString
+= "<div style='font-size:11px;text-align:right'><table><tr>";

if (postbackurl.IndexOf("?") == -1)
{
fuhao
= "?";
}
else
{
fuhao
= "&";//5+1+a+s+p+x
}

if (total >= 1)
{
//for (int i = 0; i <= total; i++)
//{
// fenyeString += "<td style='border-right: 1px solid #d0d0d0; border: 1px solid #d0d0d0'><a href='" + postbackurl + fuhao + "index=" + i + "&count=" + count + "'>" + i + "</a></td>";
//}
fenyeString += " <td style='border-right: 1px solid #d0d0d0; border: 1px solid #d0d0d0'><a href='" + postbackurl + fuhao + "index=" + (page - 1) + "&count=" + count + "'>上一页</a></td>";
fenyeString
+= "<td style='border-right: 1px solid #d0d0d0; border: 1px solid #d0d0d0'>第<font color='red'><b>" + page + "</font></b>页</td>";
fenyeString
+= "<td style='border-right: 1px solid #d0d0d0; border: 1px solid #d0d0d0'><a href='" + postbackurl + fuhao + "index=" + (page + 1) + "&count=" + count + "'>下一页</a></td>";
fenyeString
+= "<td style='border-right: 1px solid #d0d0d0; border: 1px solid #d0d0d0'>共" + total + "页</td>";
}
fenyeString
+= "</tr></table></div>";
return fenyeString;
}

}

 

 

posted on 2010-08-18 08:51  Henry_Wang  阅读(279)  评论(0编辑  收藏  举报

导航