web程序入门三(分页)
分页:
概念:
pageSize = 5 // 每页5条数据
psgeCount =Convert.toInt32( Math.Ceiling(recordCount*1.0/pageSize)) //共多少页
Math.Ceiling() // 地板除法,返回等于或大于该数的最小整数
pageIndex //当前页码值 (1,pageCount)
取数据:
根据当前页码值来动态显示数据
select row_number() over (order by id ) as num, * from userInfo;
查询共有多少列
row_number()是一个方法
select * from( row_number() over (order by id ) as num, * from userInfo ) as t
where t.num>=20 and t.num<=24;
通过这条sql语句来查询当前数据
根据当前页码,计算要显示的内容
页码通过URL传参 这样后端可以从URL中获取当前页数
下面页码处处理:
<a href ="list.aspx?pageindex=1">首页</a>
<a href ="list.aspx?pageindex=<%=pageindex<=1?1:pageindex-1%>">上一页</a> pageindex 是后端传到前端的数据
<a href ="list.aspx?pageindex=<%=pageindex>=20?20:pangeindex+1%>">下一页</a> 20是假定的总页码20页
<a href ="list.aspx?pageindex=20">尾页</a>
改进 版当前页是第一页时 不显示首页和上一页连接
if (pageindex==1)
{
<a href ="list.aspx?pageindex=<%=pageindex>=20?20:pangeindex+1%>">下一页</a> 20是假定的总页码20页
<a href ="list.aspx?pageindex=20">尾页</a>
}
else if(pageindex==20)
{
<a href ="list.aspx?pageindex=1">首页</a>
<a href ="list.aspx?pageindex=<%=pageindex<=1?1:pageindex-1%>">上一页</a>
}
else
{
<a href ="list.aspx?pageindex=1">首页</a>
<a href ="list.aspx?pageindex=<%=pageindex<=1?1:pageindex-1%>">上一页</a> pageindex 是后端传到前端的数据
<a href ="list.aspx?pageindex=<%=pageindex>=20?20:pangeindex+1%>">下一页</a> 20是假定的总页码20页
<a href ="list.aspx?pageindex=20">尾页</a>
}
数字页码:
页面上最多显示10个数字页码 起始位置-------终止位置
1…………10 (看百度下面分页)
3…………12
5…………14
起始位置 页码 start = pageIndex-5 <1?1:pageindex-5
终止位置 页码 end = pageindex+4
if (end>20) 20为假定的总页数20
{
end=20;
start=end-9>1?end-9:1; 这一条是确定,没有10页,或者end是最后一页时,页面无法显示10个页码
}
这个不需要更改后端代码,只需要更改前端显示