08sap.net=====分页总笔记

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了08sap.net=====分页总笔记相关的知识,希望对你有一定的参考价值。

分页
(1)确定每页显示多少条记录.
pageSize=10

(2):求出总页数.(先求总的记录数据)

总的记录数据
/// <summary>
/// 获取总的记录数
/// </summary>
/// <returns></returns>
public int GetRecordCount()
{
string sql = "select count(*) from UserInfo";
return Convert.ToInt32(SqlHelper.ExecuteScalar(sql, CommandType.Text));
}
在业务层求出总的页数

/// <summary>
/// 求出总的页数
/// </summary>
/// <param name="pageSize">每页显示的记录数据</param>
/// <returns></returns>
public int GetPageCount(int pageSize)
{
int recordCount = UserInfoDal.GetRecordCount();//获取总记录数.
int pageCount =Convert.ToInt32(Math.Ceiling((double)recordCount / pageSize));

return pageCount;
}


(3):获取分页的数据.
select * from(select *,row_number() over(order by id) as num from UserInfo)as t where num>=1 and num<=10
pageIndex=1.
1,......10
pageIndex=2;
11-------20


/// <summary>
/// 获取指定范围的数据
/// </summary>
/// <param name="start"></param>
/// <param name="end"></param>
/// <returns></returns>
public List<UserInfo> GetPageList(int start,int end)
{
string sql = "select * from(select *,row_number() over(order by id) as num from UserInfo)as t where num>[email protected] and num<[email protected]";
SqlParameter[] pars={
new SqlParameter("@start",start),
new SqlParameter("@end",end)
};
DataTable da=SqlHelper.GetTable(sql, CommandType.Text, pars);
List<UserInfo> list = null;
if (da.Rows.Count > 0)
{
list = new List<UserInfo>();
UserInfo userInfo = null;
foreach (DataRow row in da.Rows)
{
userInfo = new UserInfo();
LoadEntity(row,userInfo);
list.Add(userInfo);

}
}
return list;
}

(4):在业务层中计算出取数据的范围.
/// <summary>
/// 获取指定范围的数据
/// </summary>
/// <param name="pageIndex">当前页码</param>
/// <param name="pageSize">每页显示的记录数</param>
/// <returns></returns>
public List<UserInfo> GetPageList(int pageIndex,int pageSize)
{
int start = (pageIndex - 1) * pageSize + 1;
int end = pageIndex * pageSize;
return UserInfoDal.GetPageList(start, end);

}


<a href=‘NewList.aspx?pageIndex=2‘>下一页</a>


(5):表现层完成。
public string Strhtml { get; set; }
public int PageCount { get; set; }
public int PageIndex { get; set; }
protected void Page_Load(object sender, EventArgs e)
{
int pageSize = 10;//每页显示10条件记录.
int pageIndex;//当前页码值。
if(!int.TryParse(Request.QueryString["pageIndex"],out pageIndex))
{
pageIndex=1;
}
BLL.UserInfoService UserInfoService = new BLL.UserInfoService();
int pageCount = UserInfoService.GetPageCount(pageSize);//获取总页数.
PageCount = pageCount;
//判断当前页码值的范围
pageIndex = pageIndex < 1 ? 1 : pageIndex;
pageIndex = pageIndex > pageCount ? pageCount : pageIndex;
PageIndex = pageIndex;
List<UserInfo>list=UserInfoService.GetPageList(pageIndex,pageSize);//获取分页的数据
StringBuilder sb = new StringBuilder();
foreach (UserInfo userInfo in list)
{
sb.AppendFormat("<li><span>{0}</span><a href=‘‘ target=‘_blank‘>{1}</a></li>",userInfo.RegTime,userInfo.UserName);
}
StrHtml = sb.ToString();
}


5:数字分页的页码条

1,2,3,4,5,6,7,8,9,10

页面上要显示10个数字页码条。

如果用户单击了8,数字页码条变成3,,,,,,8,,,12.

10
5,,,,,,,,,,14

以上是关于08sap.net=====分页总笔记的主要内容,如果未能解决你的问题,请参考以下文章

前端学习(3078):vue+element今日头条管理-分页总页码的实现

前端学习(3078):vue+element今日头条管理-分页总页码的实现

关于Java的分页算法,急!

当我单击 gridview 分页时,它隐藏了整个网格本身

pagehelper总条数最大7设置

操作系统—王道考研学习笔记 <3.1_6> 分页存储管理