一个通用的JavaScript分页

1.JavaScript代码

Java代码  

  1. Pagination=function(id)
  2. {
  3. var totalNum=0;
  4. var maxNum=10;
  5. var pageUrl="";
  6. var breakpage = 5;
  7. var currentposition = 0;
  8. var breakspace = 2;
  9. var maxspace = 4;
  10. var currentpage=1;
  11. var perpage=10;
  12. var id =id;
  13. this.initPage = function(pageName)
  14. {
  15. var count = this.getTotalNum();
  16. perpage = this.getMaxNum();
  17. if (currentpage==null){
  18. currentpage = 1;
  19. }else{
  20. currentpage = parseInt(currentpage);
  21. }
  22. var pagecount = Math.floor(count/perpage)+1;
  23. var pagestr = "";
  24. var prevnum = currentpage-currentposition;
  25. var nextnum = currentpage+currentposition;
  26. if(prevnum<1) prevnum = 1;
  27. if(nextnum>pagecount) nextnum = pagecount;
  28. pagestr += (currentpage==1)?‘<span class="disabled"> <上一页</span>‘:‘<span><a  href="javascript:‘+pageName+‘.page_onclick(‘+(this.getIndexPage()-1)+‘,\‘‘+pageName+‘\‘)"><上一页</a></span>‘;
  29. if(prevnum-breakspace>maxspace){
  30. for(i=1;i<=breakspace;i++)
  31. pagestr += ‘<a href="javascript:‘+pageName+‘.page_onclick(‘+i+‘,\‘‘+pageName+‘\‘)">‘+i+‘</a>‘;
  32. pagestr += ‘...‘;
  33. for(i=pagecount-breakpage+1;i<prevnum;i++)
  34. pagestr += ‘<a href="javascript:‘+pageName+‘.page_onclick(‘+i+‘,\‘‘+pageName+‘\‘)">‘+i+‘</a>‘;
  35. }else{
  36. for(i=1;i<prevnum;i++)
  37. pagestr += ‘<a href="javascript:‘+pageName+‘.page_onclick(‘+i+‘,\‘‘+pageName+‘\‘)">‘+i+‘</a>‘;
  38. }
  39. for(i=prevnum;i<=nextnum;i++){
  40. pagestr += (currentpage==i)?‘<span class="current">‘+i+‘</span>‘:‘<a href="javascript:‘+pageName+‘.page_onclick(‘+i+‘,\‘‘+pageName+‘\‘)">‘+i+‘</a>‘;
  41. }
  42. if(pagecount-breakspace-nextnum+1>maxspace){
  43. for(i=nextnum+1;i<=breakpage;i++)
  44. pagestr += ‘<a href="javascript:‘+pageName+‘.page_onclick(‘+i+‘,\‘‘+pageName+‘\‘)">‘+i+‘</a>‘;
  45. pagestr += ‘<span class="break">...</span>‘;
  46. for(i=pagecount-breakspace+1;i<=pagecount;i++)
  47. pagestr += ‘<a href="javascript:‘+pageName+‘.page_onclick(‘+i+‘,\‘‘+pageName+‘\‘)">‘+i+‘</a>‘;
  48. }else{
  49. for(i=nextnum+1;i<=pagecount;i++)
  50. pagestr += ‘<a href="javascript:‘+pageName+‘.page_onclick(‘+i+‘,\‘‘+pageName+‘\‘)">‘+i+‘</a>‘;
  51. }
  52. pagestr += (currentpage==pagecount)?‘<span class="disabled">下一页  ></span>‘:‘<a href="javascript:‘+pageName+‘.page_onclick(‘+(this.getIndexPage()+1)+‘,\‘‘+pageName+‘\‘)">下一页  ></a>‘;
  53. this.$(id).className="manu"
  54. this.$(id).innerHTML=pagestr;
  55. }
  56. this.getTotalNum = function()
  57. {
  58. return totalNum;
  59. };
  60. this.setTotalNum = function(sTotalNum)
  61. {
  62. totalNum = sTotalNum;
  63. };
  64. this.getMaxNum = function()
  65. {
  66. return maxNum;
  67. };
  68. this.setMaxNum=function(sMaxNum)
  69. {
  70. maxNum = sMaxNum;
  71. };
  72. this.getIndexPage = function()
  73. {
  74. return currentpage;
  75. };
  76. this.setIndexPage=function(sCurrentPage)
  77. {
  78. currentpage =sCurrentPage;
  79. };
  80. this.page_onclick=function(num,pageStr)
  81. {
  82. this.setIndexPage(num);
  83. pagination_data();
  84. this.initPage(pageStr);
  85. };
  86. this.$=function(objStr)
  87. {
  88. return document.getElementById(objStr);
  89. }
  90. }
  91. function $(objStr)
  92. {
  93. return document.getElementById(objStr);
  94. }
  95. function pagination_data()
  96. {
  97. }

2.CSS代码

Java代码  

  1. /* CSS Document */
  2. /* Paginator */
  3. a img {blr:expression(this.onFocus=this.blur())}
  4. area {blr:expression(this.onFocus=this.blur())}
  5. .manu {
  6. PADDING-RIGHT: 3px; PADDING-LEFT: 3px; PADDING-BOTTOM: 3px; MARGIN: 3px; PADDING-TOP: 3px; TEXT-ALIGN: center; FONT-SIZE: 12px;FONT-FAMILY: Verdana, Arial, Helvetica, sans-serif;
  7. }
  8. .manu A {
  9. BORDER-RIGHT: #eee 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: #eee 1px solid; PADDING-LEFT: 5px; PADDING-BOTTOM: 2px; MARGIN: 2px; BORDER-LEFT: #eee 1px solid; COLOR: #036cb4; PADDING-TOP: 2px; BORDER-BOTTOM: #eee 1px solid; TEXT-DECORATION: none
  10. }
  11. .manu A:hover {
  12. BORDER-RIGHT: #999 1px solid; BORDER-TOP: #999 1px solid; BORDER-LEFT: #999 1px solid; COLOR: #666; BORDER-BOTTOM: #999 1px solid
  13. }
  14. .manu A:active {
  15. BORDER-RIGHT: #999 1px solid; BORDER-TOP: #999 1px solid; BORDER-LEFT: #999 1px solid; COLOR: #666; BORDER-BOTTOM: #999 1px solid
  16. }
  17. .manu .current {
  18. BORDER-RIGHT: #036cb4 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: #036cb4 1px solid; PADDING-LEFT: 5px; FONT-WEIGHT: bold; PADDING-BOTTOM: 2px; MARGIN: 2px; BORDER-LEFT: #036cb4 1px solid; COLOR: #fff; PADDING-TOP: 2px; BORDER-BOTTOM: #036cb4 1px solid; #036cb4
  19. }
  20. .manu .disabled {
  21. BORDER-RIGHT: #eee 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: #eee 1px solid; PADDING-LEFT: 5px; PADDING-BOTTOM: 2px; MARGIN: 2px; BORDER-LEFT: #eee 1px solid; COLOR: #ddd; PADDING-TOP: 2px; BORDER-BOTTOM: #eee 1px solid
  22. }

3.使用例子

Java代码  

  1. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
  2. <%@include file="/common/taglibs/taglibs.jsp"%>
  3. <%@ page language="java" import="java.util.*" pageEncoding="GBK"%>
  4. <html xmlns="http://www.w3.org/1999/xhtml">
  5. <head>
  6. <link
  7. href="${pageContext.request.contextPath}/common/css/pagination.css"
  8. rel="stylesheet" type="text/css" />
  9. <script
  10. src="${pageContext.request.contextPath}/common/js/page-common.js"></script>
  11. </head>
  12. <body>
  13. <div id="12333"></div>
  14. <script>
  15. var page = new Pagination("12333");
  16. page.setTotalNum(1000);//总共有多少条
  17. page.setMaxNum(20);//每页显示的条数
  18. page.setIndexPage(1);//当前所在第几页
  19. page.initPage("page");//初始化页面
  20. function pagination_data()
  21. {
  22. alert(page.getIndexPage()+":"+page.getMaxNum());
  23. }
  24. </script>
  25. </body>
  26. </html>

一个通用的JavaScript分页

时间: 2024-10-14 21:14:18

一个通用的JavaScript分页的相关文章

使用amaze ui的分页样式封装一个通用的JS分页控件

作为一名码农,天天百度.偶尔谷歌,所有代码全靠copy,用第三方插件,偶尔也想着造造轮子,毕竟自己的骨肉总归比较亲. 今天有点空闲时间,想起我们公司之前套的页面的分页插件上还有bug,而写那个分页插件的小伙子已经离职,就决定自己来写一个. 首先,肯定是用我们的妹子UI做样式效果,毕竟开发妹子少,做的东西能和妹子沾点边,就沾一点,毕竟妹子比较好看. 然后 开始吧 第一步 找到妹子UI的分页HTML代码,一共有2种,我喜欢第一种,比较有颜 这是妹子UI的分页代码 <ul data-am-widget

分享一个通用的分页SQL

又很久没写博客,今天记录一个SQLserver通用分页存储过程(适用于SqlServer2000及以上版本) 1.支持连表 2.支持条件查询 USE [MYDB] GO /****** Object:  StoredProcedure [dbo].[SP_CommonPage] SET QUOTED_IDENTIFIER ON GO ------------------------------------ --用途:分页存储过程(对有主键的表效率极高) --说明: ---------------

分享一个完整的Mybatis分页解决方案

Mybatis 的物理分页是应用中的一个难点,特别是配合检索和排序功能叠加时更是如此. 我在最近的项目中开发了这个通用分页器,过程中参考了站内不少好文章,阅读源码帮助更大minglisoft.cn/technology [背景] 项目框架是 SpringMVC+Mybatis, 需求是想采用自定义的分页标签,同时,要尽量少的影响业务程序开发的.如果你已经使用了JS框架( 如:Ext,EasyUi等)自带的分页机能,是属于前端分页,不在本文讨论范围. [关于问题] 大多数分页器会使用在查询页面,要

javascript 分页组件

原文:javascript 分页组件 自己写的一个简单的分页组件,主要功能还有实现都在JS中,html页面中只用增加一个放置生成分页的DIV,并给定容器的id. html结构如下: <ul class="pagination" id="pageDIV"> </ul> class="pagination" 给定了分页的样式, id="pageDIV"用于放置JS生成的分页 CSS结构如下: .pagina

真正通用的SQL分页存储过程

关于SQL分页的问题,网上找到的一些SQL其实不能真正做到通用,他们主要是以自增长ID做为前提的.但在实际使用中,很多表不是自增长的,而且主键也不止一个字段,其实我们稍做改进就可以达到通用.这里还增加了索引,以方便大数据量的使用(代码中是先抓到临时表的,从性能上说如果采用自增长式的ID表,当然可以不使用临时表以达到性能的提升).以下代码的SP是经过我们项目使用通过的.因朋友问及此问题,我就放在这里供大家分享,如各位大侠有更好的方法,也请告诉我.在这里先感谢各位了. 1 CREATE PROCED

一个重构的js分页类

// JavaScript Document /**//** * js分页类 * @param iAbsolute 每页显示记录数 * @param sTableId 分页表格属性ID值,为String * @param sTBodyId 分页表格TBODY的属性ID值,为String,此项为要分页的主体内容 * @Version 1.0.0 * @author 辛现宝 2007-01-15 created * var __variable__; private * function __met

自制Javascript分页插件,支持AJAX加载和URL带参跳转两种初始化方式,可用于同一页面的多个分页和不同页面的调用

闲话部分 最近闲着实在无聊,就做了点小东西练练手,由于原来一直在用AspNetPager进行分页,而且也进行了深度的定制与原有系统整合的也不错,不过毕竟是用别人的,想着看自己能试着做出来不能,后台的分页插件已经有比较成熟的了,那就自己试着写一个前台分页吧. 话不多说,先上效果图: 优点与缺点 来说说优缺点吧,首先AspNetPager是后台分页控件,所以在向客户端回传HTML文档之前生成HTML阶段 就会把分页代码生成完毕,然后回传,而JS是前端代码,就是HTML文档在服务器组织完毕往客户端传送

动手编写插件-javascript分页插件

原来公司用的报表分页插件是C#编写的服务器插件,需要前后台交互,而且不支持ajax. 经过一段时间折腾,我编写了一个轻便的jquery分页插件,支持ajax.下面是插件代码 /* 插件名称:报表分页 作者:Keven 调用方法: 1.在html报表下面增加<div class="pageInfo"></div> 2. javascript代码 $(".pageInfo").PageInit(); 3.定义函数setResult,把json数据

一个完整的Mybatis分页解决方案

[布景] 号码大全项目结构是 SpringMVC+Mybatis, 需求是想选用自定义的分页标签,关键词挖掘工具一起,要尽量少的影响事务程序开发的. 假如你已经运用了JS结构( 如:Ext,EasyUi等)自带的分页机能,这篇文章帮助能够不大,因为JS结构供给了固定的接口. [关于疑问] 大多数分页器会运用在查询页面,要思考以下疑问: 1)分页时是要随时带有近来一次查询条件 2)不能影响现有的sql,相似aop的作用 3)mybatis供给了通用的阻拦接口,要挑选恰当的阻拦办法和时点 4)尽量少