首页|上一页|1|2|3|4|5|6|下一页|末页 首尾我都实现了 就这中间|1|2|3|4|5|6|这怎么控制啊 吗,每页显示6个数字连接 当我点击 6的时候变成 下一个|7|8|9|10|11|12| 什么思路 说详细一点 最好有代码
解决方案 »
- 推荐深一点的SSH2书,最后是英文的,有中文版的
- 求助!动态预选checkbox
- 实际正式项目部署tomcat的时候用那个呀
- 能否操作缺少数据时,重定向到配置界面并保存后,再自动执行未完成的操作?
- NumberFormatException 错误
- 如何从jsp页面的表单中传数据到服务器
- 关于多个action指向同一个formbean的问题?
- 关于Hibernate Criteria查询的排序问题
- oracle jdbc preparedstatement的问题
- 那有用ejb的小程序下载?
- spring, aop, retry, exception: expected single bean but found 0
- Service层怎么写导出Excel方法???
public class PageIndex { private long startindex; private long endindex; public PageIndex(long startindex, long endindex) {
this.startindex = startindex;
this.endindex = endindex;
} public long getStartindex() {
return startindex;
} public void setStartindex(long startindex) {
this.startindex = startindex;
} public long getEndindex() {
return endindex;
} public void setEndindex(long endindex) {
this.endindex = endindex;
} public static PageIndex getPageIndex(long viewpagecount, int currenPage, long totalpage) {
long startpage = currenPage - (viewpagecount % 2 == 0 ? viewpagecount / 2 - 1 : viewpagecount / 2);
long endpage = currenPage + viewpagecount / 2;
if (startpage < 1) {
startpage = 1;
if (totalpage >= viewpagecount) endpage = viewpagecount;
else endpage = totalpage;
}
if (endpage > totalpage) {
endpage = totalpage;
if ((endpage - viewpagecount) > 0) startpage = endpage - viewpagecount + 1;
else startpage = 1;
}
return new PageIndex(startpage, endpage);
}}
当你后台取数据后,不是要去为pageBean的某些参数重新赋值嘛,比如当前页
这个时候可以利用我上面给你说的逻辑,去为这个pageForm赋值。。然后页面上将页码pageForm显示出来就OK了。具体逻辑:
根据当前页和每页6个数字把当前页取出来【实际显示的当前页要+1,表示从1开始】,先和6相除,取整数,然后和6取余数如果余数等于0,那你的页码范围就是: 用当前页-(1,2,3,4,5,6)
如果余数不等于0,那么你的页码范围就是:(相除的整数*6)+(1,2,3,4,5,6)
现在页码获取到了curN,
如果curN+6>totalN :界面展示"上一页 curN+1 | curN+2 ..... | totalN "
如果curN+6<=totalN:界面展示"上一页 curN+1 | curN+2 ..... | curN+6 |下一页"
另外"上一页""下一页"还可以根据curN是否为1和totalN来判断是否有要显示
function showPage($curpage,$step=6){
$start = 1; $mod = $curpage % $step;
$sh = (int)($curpage / $step) ;
if($mod == 0){
$start = $sh * $step + $start;
}else if($mod > 0 && $mod < $step){
$start = $sh * $step + $start;
}
for($i = $start; $i < $start + $step ; $i++){
echo "<a href=>$i</a>  ";
}
echo "<br/>";
}
showPage(2);
showPage(6);
showPage(20);