bootstrap,来自 twitter,是目前很受欢迎的前端框架。bootstrap 是基于 html、css、javascript 的,它简洁灵活,使得 web 开发更加快捷。本文主要为大家详细介绍了bootstrap实现翻页效果,具有一定的参考价值,感兴趣的小伙伴们可以参考一下。
优点:
支持局部刷新;
只要是列表,都可以加载该组件;
支持动态数据绑定;
当然还有绝对的简单实用。
效果图
最后一页时:
最开始一页时:
实现
①、翻页组件的布局
<%@ page language="java" contenttype="text/html; charset=utf-8" pageencoding="utf-8"%>
<%@ include file="/components/common/taglib.jsp"%>
<c:if test="${urlparas == null}">
<c:set var="urlparas" value="" />
</c:if>
<c:if test="${(totalpage > 0) && (currentpage <= totalpage)}">
<c:set var="startpage" value="${currentpage - 4}" />
<c:if test="${startpage < 1}">
<c:set var="startpage" value="1" />
</c:if>
<c:set var="endpage" value="${currentpage + 4}" />
<c:if test="${endpage > totalpage}">
<c:set var="endpage" value="totalpage" />
</c:if>
<nav>
<ul class="pager">
<c:if test="${currentpage <= 8}">
<c:set var="startpage" value="1" />
</c:if>
<c:if test="${(totalpage - currentpage) < 8}">
<c:set var="endpage" value="${totalpage}" />
</c:if>
<c:choose>
<c:when test="${currentpage == 1}">
<li class="previous disabled"><a>
<span aria-hidden="true">←</span>
前一页
</a></li>
</c:when>
<c:otherwise>
<li class="previous"><a href="javascript:;" pagenum="${currentpage - 1}" rel="${rel}" urlparas="${urlparas}">
<span aria-hidden="true">←</span>
前一页
</a></li>
</c:otherwise>
</c:choose>
<c:choose>
<c:when test="${currentpage == totalpage}">
<li class="next disabled"><a>
后一页
<span aria-hidden="true">→</span>
</a></li>
</c:when>
<c:otherwise>
<li class="next"><a href="javascript:;" pagenum="${currentpage + 1}" rel="${rel}" urlparas="${urlparas}">
后一页
<span aria-hidden="true">→</span>
</a></li>
</c:otherwise>
</c:choose>
</ul>
</nav>
</c:if>
pagenum:第几页
rel:要刷新哪一个p的id
urlparas:其他参数
②、调用翻页组件
<!doctype html public "-//w3c//dtd xhtml 1.0 transitional//en" "http://www.w3.org/tr/xhtml1/dtd/xhtml1-transitional.dtd">
<%@ page language="java" contenttype="text/html; charset=utf-8" pageencoding="utf-8"%>
<%@ include file="/components/common/taglib.jsp"%>
<c:set var="currentpage" value="${dealpage.pagenumber}" />
<c:set var="totalpage" value="${dealpage.totalpage}" />
<c:set var="rel" value="deal_items" />
<c:set var="urlparas" value="" />
<%@ include file="/components/common/paginate.jsp"%>
currentpage:页数
totalpage:总页数
rel:局部刷新p的id
urlparas:其他参数,暂无
③、翻页事件
$(function() {
// 翻页组件
$("ul[class=pager] li:not(.disabled) > a", $p).each(function() {
$(this).click(function(event) {
var $this = $(this);
yunm.debug($this.attr("pagenum") + "、" + $this.attr("rel") + "、" + $this.attr("urlparas"));
var pagenum = $this.attr("pagenum");
// 准备翻页事件
if (pagenum && pagenum.ispositiveinteger()) {
yunmpagebreak({
rel : $this.attr("rel"),
data : {
pagenum : pagenum,
urlparas : $this.attr("urlparas")
}
});
}
event.preventdefault();
return false;
});
});
});
页面加载完成后,获取翻页的a标签,为其加载翻页功能。
设置pagenum,这个肯定必须传递
获取局部刷新p,这个地方以后有待改善,通过id获取好像不太好。
传递额外参数urlparas
最后阻止a标签既有事件。
/**
* 翻页
*
* @param options
*/
function yunmpagebreak(options) {
var op = $.extend({
rel : "",
data : {
pagenum : "",
numperpage : "",
orderfield : "",
orderdirection : "",
urlparas : ""
},
callback : null
}, options);
var $panel = $("#" + op.rel);
if (op.rel) {
var dataid = $panel.attr("data");
var url = $panel.attr("url");
// 设置p上的其他参数
if (dataid) {
if (dataid.indexof(",") != -1) {
$.each(dataid.split(","), function(index, id) {
if ($("#" + id) && $("#" + id).val()) {
url = addmoreparamforurl(url, id, $("#" + id).val());
}
});
} else {
if ($("#" + dataid) && $("#" + dataid).val()) {
url = addmoreparamforurl(url, dataid, $("#" + dataid).val());
}
}
}
// 局部刷新
$panel.ajaxurl({
type : "post",
url : url,
data : op.data,
callback : function(response) {
if ($.isfunction(op.callback))
op.callback(response);
}
});
}
}
这串代码也很好懂,获取ajax请求的url
获取ajax请求的参数data
至于ajaxurl方法,请参照我的再谈ajax局部刷新,我觉得这样局部刷新还是很实用的。
到这,前台的内容都ok了,接下来需要什么呢?自然是jfinal端的数据获取。
④、分页数据获取
public page<deals> paginatecreatedealsbyuid(int pagenumber, int pagesize, long uid) {
page<deals> deals = paginate(pagenumber, pagesize, "select y.*",
"from ym_dels y where y.uid = ? order by y.opertime desc", uid);
return deals;
}
jfinal自然已经提供了很好的翻页功能paginate方法。
就只需要把对应的数据返回就可以了。
相关推荐:
如何处理bootstrap table 服务端处理分页
求php+sqlserver的翻页效果,该怎么处理
简单做出html5翻页效果文字特效
以上就是bootstrap实现翻页效果的详细内容。
