`

自定義 jsp 分頁控件

    博客分类:
  • J2EE
阅读更多

<%@ page language="java" pageEncoding="UTF-8"%>
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
<%@ taglib uri="http://java.sun.com/jsp/jstl/fmt" prefix="fmt" %>
<c:set var="path" value="${path}"></c:set>
<%-- 總條數 --%>
<c:set var="total" value="${total}"></c:set>
<%-- 總頁數 --%>
<c:set var="pageCount" value=""></c:set>
<%-- 當前頁索引 --%>
<c:set var="pageIndex" value="${pageIndex}"></c:set>
<%-- 每頁顯示條數 --%>
<c:set var="pageSize" value="${pageSize}"></c:set>

<c:set var="borderColor" value=""></c:set>
<c:set var="backColor" value=""></c:set>
<c:set var="selectColor" value=""></c:set>

<%-- 根據總條數計算總頁數
--%>
<c:set var="beginSize" value="1"></c:set>
<c:set var="endSize" value=""></c:set>
<c:if test="${ total%pageSize==0}">
    <c:set var="endSize" value="${total/pageSize}"></c:set>
    <c:set var="pageCount" value="${total/pageSize}"></c:set>
</c:if>
<c:if test="${ total%pageSize >0}">
    <c:set var="endSize" value="${(total-total%pageSize)/pageSize+1}"></c:set>
    <c:set var="pageCount" value="${(total-total%pageSize)/pageSize+1}"></c:set>
</c:if>
<%--
    endSize:<c:out value="${pageCount}"></c:out>
--%>
<!------------------------javascript begin-------------------------->
<script type="text/javascript">
function getCheck(path){
    if(path.indexOf('?')==-1){
        return path+"?";
    }else{
        return path+"&";
    }
}
function getPageSize(){
    var pgSizeObj = document.getElementById("selPageSize");
    var pageVal = pgSizeObj.value;
    //alert(pageVal);
    return pageVal;
}

function changePageSize(obj){
    var pageVal = obj.value;
    //alert(pageVal);
    var path = getCheck("${path}")+"pageSize="+pageVal+"&pageIndex="+1;
    // forwrard
    //alert(path);
    location.href=path;
}
function changePageIndex(obj){
    var pageIndex = obj.value;
    //alert(pageVal);
    var path = getCheck("${path}")+"pageSize="+getPageSize()+"&pageIndex="+pageIndex;
    // forwrard
    //alert(path);
    location.href=path;
}
function goFirstPage(){
    var path = getCheck("${path}")+"pageSize="+getPageSize()+"&pageIndex="+"${beginSize}";
    //alert(path);
    location.href=path;
}
function goLastPage(){
    var path = getCheck("${path}")+"pageSize="+getPageSize()+"&pageIndex="+parseInt("${endSize}");
    //alert(path);
    location.href=path;
}
function goPreviousPage(){
    var nowPageIndex = parseInt("${pageIndex}");
    var endPageIndex = parseInt("${endSize}");
   
    //alert("now:"+nowPageIndex+" \n"+"end: "+endPageIndex);
    var pageIndex;
    if(nowPageIndex <= 1){
        pageIndex=1;
    }else if(nowPageIndex>1 || nowPageIndex<=endPageIndex){
        pageIndex=nowPageIndex-1;
    }else{
        alert("出錯了");
    }
    var path = getCheck("${path}")+"pageSize="+getPageSize()+"&pageIndex="+pageIndex;
    //alert(path);
    location.href=path;
}
function goNextPage(){
    var nowPageIndex = parseInt("${pageIndex}");
    var endPageIndex = parseInt("${endSize}");

    //alert("now:"+nowPageIndex+" \n"+"end: "+endPageIndex);
    var pageIndex;
    if(nowPageIndex >= endPageIndex){
        pageIndex = endPageIndex;
    }else if(nowPageIndex < endPageIndex){
        pageIndex = nowPageIndex + 1;
    }else{
        alert("出錯了");
    }
    var path = getCheck("${path}")+"pageSize="+getPageSize()+"&pageIndex="+ pageIndex;
    //alert(path);
    location.href=path;
}
</script>

<!--------------------------javascript end------------------------>
<c:if test="${null!=path}">
<div id="main" style="border:0px solid blue; text-align:right; padding:3px; font-size: 12px;">
<table border="0" cellpadding="3" cellspacing="0">
    <tr>
        <td>第${pageIndex}頁</td>
        <td>共<fmt:formatNumber value='${pageCount}' pattern='#'></fmt:formatNumber>頁</td>
        <c:if test="${pageIndex!=beginSize}">
            <td><input id="first" type="button" value="第一頁" onclick="goFirstPage()"></td>
        </c:if>
        <c:if test="${pageIndex != beginSize}">
            <td><input id="previous" type="button" value="上一頁" onclick="goPreviousPage()"></td>
        </c:if>
        <c:if test="${pageIndex != endSize}">
            <td><input id="next" type="button" value="下一頁" onclick="goNextPage()"></td>
        </c:if>
        <c:if test="${pageIndex != endSize}">
            <td><input id="last" type="button" value="最后一頁" onclick="goLastPage()"></td>
        </c:if>
        <%-- 共有多少頁 --%>
        <td>
            <select id="selPageIndex" onchange="changePageIndex(this)">
                <c:forEach var="indexValue" begin="1" end="${pageCount}" step="1">
                    <c:if test="${indexValue==pageIndex}">
                        <option value="${indexValue}" selected="selected">第${indexValue}頁</option>
                    </c:if>
                    <c:if test="${indexValue!=pageIndex}">
                        <option value="${indexValue}">第${indexValue}頁</option>
                    </c:if>
                </c:forEach>
            </select>
        </td>
        <%-- 每頁顯示多少條 --%>
        <td>
            <select id="selPageSize" onchange="changePageSize(this)">
                <c:forEach var="pageNum" begin="5" end="50" step="5">
                    <c:if test="${pageNum==pageSize}">
                        <option value="${pageNum}" selected="selected">每頁${pageNum}條</option>
                    </c:if>
                    <c:if test="${pageNum!=pageSize}">
                        <option value="${pageNum}">每頁${pageNum}條</option>
                    </c:if>
                </c:forEach>
            </select>
        </td>
    </tr>
</table>
</div>
</c:if>

分享到:
评论
1 楼 风问起 2010-04-29  

相关推荐

    jsp 分页控件下载!

    主要是对集合进行分页,该控件本身并不会帮使用者对数据进行显示,只对用户要分页的集合进行分页,因为使用者的需求并不相同,但是分页的需求是相同的。该控件能节约用户的时间,使使用该控件的使用者能把时间分到别...

    smartpaginator ajax jsp分页控件

    "SmartPaginator"是一款专为Java Web应用设计的Ajax JSP分页控件,它结合了jsp技术与Ajax技术,提供了高效、动态的分页功能。在本篇文章中,我们将深入探讨SmartPaginator的核心特性、工作原理以及如何在实际项目中...

    一款不错的jsp 分页控件

    "一款不错的jsp 分页控件" 提供了一个高效的解决方案,使得开发者能够在JSP(JavaServer Pages)环境中轻松实现分页功能。这款控件以其简洁的API和高效的性能,受到了许多开发者的青睐。 分页控件的主要功能是将...

    java分页控件.rar

    Java分页控件是Java开发中常用的一种组件,主要用于在大量数据展示时提供翻页功能,提高用户体验。在Web应用中,特别是在数据密集型的应用如电商、报表系统中,分页控件扮演着至关重要的角色。它允许用户按需加载...

    网页分页控件

    网页分页控件是网页开发中的一个重要组成部分,尤其在处理大量数据时,它能有效地提高用户体验,避免一次性加载过多的数据导致页面响应速度变慢。在本文中,我们将深入探讨网页分页控件的工作原理、常见类型、实现...

    一个简单好用的jsp翻页控件

    创建一个简单的JSP分页控件,我们需要考虑以下几个核心组件: 1. **模型(Model)**:这部分通常由JavaBean或DAO(Data Access Object)实现,负责与数据库交互,获取所需的数据量并进行分页计算。例如,我们可能...

    Struts2+jsp自定义分页组件以及源码

    总的来说,"zoo-paging-1.0.jar"是一个自定义的JSP分页组件,适用于Struts2框架。通过使用这个组件,开发者可以快速实现高效、易于维护的分页功能。对于初学者,这是一个很好的学习资源,能帮助他们深入理解Java Web...

    关于分页的页面控件

    这些插件通常提供了丰富的配置选项和自定义样式,可以快速集成到项目中。 五、无限滚动分页 除了传统的分页方式,还可以实现无限滚动分页。这种模式下,当用户滚动到页面底部时,会自动加载下一页内容,提升用户...

    PageTool分页控件源码201291

    5. **自定义样式**:为了适应各种UI设计,PageTool分页控件应支持自定义样式和皮肤,使得其外观能够与网页整体风格保持一致。 6. **兼容性**:考虑到不同的开发需求,PageTool可能需要支持ASP.NET的各种版本,包括...

    Struts 2 自定义标签分页

    8. **页面展示**:最后,在JSP页面中,我们可以使用Struts 2的内置标签结合自定义分页标签来展示数据和分页控件。 总结一下,实现Struts 2 自定义标签分页需要对Struts 2框架有深入理解,包括标签库的创建、Java类...

    ssh 分页 控件 (分页插件)

    这里提到的是一个基于SSH框架的自定义JSP标签库,用于实现分页功能。 首先,SSH框架中的Struts2负责处理用户请求并调度业务逻辑,Spring则作为依赖注入容器,管理对象的生命周期和事务,Hibernate则是ORM(对象关系...

    实现jsp打印的控件

    标题中的“实现jsp打印的控件”就是针对这样的需求,它涉及到如何在JSP页面中添加打印功能,包括打印配置、预览和实际的打印操作。 1. **打印控件的实现原理** - 打印控件通常通过JavaScript或者Java Applet来实现...

    jquery分页插件结合jsp实例

    `jPagination`是一款流行且易于使用的jQuery分页插件,它提供了多种自定义选项,如每页显示的记录数、样式、回调函数等,帮助开发者快速实现分页功能。在项目中引入jPagination,你需要下载该插件的JS文件,并将其...

    jspPageControlor分页插件--jsp分页jar包

    2. **编写JSP页面**:在JSP页面中,通过插件提供的标签库,插入分页控件。这些控件会根据后台传递的分页信息自动生成相应的HTML元素。 3. **处理请求**:在Servlet或Controller层,处理用户的分页请求,计算当前页...

    jsp数据分页源代码

    这个分页控件声称支持Oracle、SQL Server和MySQL等数据库。这通常意味着它提供了适配这些数据库的SQL查询语句,如使用不同的分页语法(例如,Oracle的ROWNUM,SQL Server的OFFSET/FETCH,MySQL的LIMIT)。开发者只...

    JSP GridView --使用自定义标签实现ASP.NET的控件

    JSP GridView 是一个在Java服务器页面(JSP)中用于数据展示的强大组件,它类似于ASP.NET中的GridView控件。...如果你对自定义JSP标签或数据展示组件感兴趣,这个博客和提供的源码将是一份宝贵的资源。

    jsp分页实例+分页空间+使用说明

    本文将深入探讨"jsp分页实例",并解析如何实现一个基本的分页系统,同时提供"分页控件"的使用说明。 首先,我们了解JSP分页的基本原理。分页通常涉及到两个主要部分:前端展示和后端逻辑。前端负责展示页面链接,...

    Struts2分页-自定义标签-类似百度分页

    总之,Struts2自定义标签提供了一种灵活的方式,使得开发者能够在JSP页面中方便地实现分页效果。通过自定义标签,我们可以将复杂的分页逻辑封装起来,使得前端展示更加简洁,同时提高了代码的可维护性和复用性。结合...

    eXtremeTable分页控件完整例子(数据分页+数据导出)

    - 用户界面交互:展示分页控件和导出按钮,处理用户的点击事件。 通过深入理解并实践这些示例代码,开发者可以掌握eXtremeTable的核心特性,提升Web应用的用户体验,同时也能提高数据处理和导出的效率。对于从事...

Global site tag (gtag.js) - Google Analytics