`
张玉龙
  • 浏览: 743795 次
  • 性别: Icon_minigender_1
  • 来自: 沈阳
社区版块
存档分类
最新评论

JavaScript分页控件 js 分页

阅读更多

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
 <meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
 <title>JavaScript分页控件</title>
 <style type="text/css">
 body{
  margin: 0;
  padding: 0;
  font-size: 14px;
  font-family: tahoma, arial;
  background: #fff;
 }
.PagerView{
 color: #333;
 text-align: center;
 margin: 8px;
}
.PagerView span{
 color: #999;
 margin: 0 1px;
 padding: 3px 6px;
 border: 1px solid #ccc;
}
.PagerView span.on{
 color: #333;
 font-weight: bold;
 border: 1px solid #333;
}
.PagerView a{
 color: #00f;
 text-decoration: none;
}
.PagerView a span{
 border: 1px solid #66c;
 color: #33f;
}
.PagerView a:hover span{
 color: #f00;
 background: #ff9;
}
 </style>
<script type="text/javascript">

/**
 *
 * 分页控件, 使用原生的JavaScript代码编写. 重写onclick方法, 获取翻页事件,
 * 可用来向服务器端发起AJAX请求.
 *
 * 示例:
 * HTML:
 * <div id="pager"></div>
 *
 * JavaScript:
 * var pager = new PagerView('pager');
 * pager.index = 3; // 当前是第3页
 * pager.size = 16; // 每页显示16条记录
 * pager.itemCount = 100; // 一共有100条记录
 *
 * pager.onclick = function(index){
 * alert('click on page: ' + index);
 * // display data...
 * pager.render();
 * };
 *
 * pager.render();
 *
 * @param id: HTML节点的id属性值, 控件将显示在该节点中. 可以延迟到render方法调用之前设置.
 */
function PagerView(id){
 var self = this;
 this.id = id;
 this.container = null;
 this.index = 1; // 当前页码, 从1开始
 this.size = 15; // 每页显示记录数
 this.maxButtons = 9; // 显示的分页按钮数量
 this.itemCount = 0; // 记录总数
 this.pageCount = 0; // 总页数
 /**
  * 控件使用者重写本方法, 获取翻页事件, 可用来向服务器端发起AJAX请求.
  * @param index: 被点击的页码.
  */
 this.onclick = function(index){
 };
 /**
  * 内部方法.
  */
 this._onclick = function(index){
  self.index = index;
  self.onclick(index);
  self.render();
 };
 /**
  * 在显示之前计算各种页码变量的值.
  */
 this.calculate = function(){
  self.pageCount = parseInt(Math.ceil(self.itemCount / self.size));
  self.index = parseInt(self.index);
  if(self.index > self.pageCount){
   self.index = self.pageCount;
  }
 };
 /**
  * 渲染分页控件.
  */
 this.render = function(){
  if(self.id != undefined){
   var div = document.getElementById(self.id);
   div.view = self;
   self.container = div;
  }
  self.calculate();
  var start, end;
  start = Math.max(1, self.index - parseInt(self.maxButtons/2));
  end = Math.min(self.pageCount, start + self.maxButtons - 1);
  start = Math.max(1, end - self.maxButtons + 1);
  var str = "";
  str += "<div class=\"PagerView\">\n";
  if(self.pageCount > 1){
   if(self.index != 1){
    str += '<a href="javascript://1"><span>|<</span></a>';
    str += '<a href="javascript://' + (self.index-1) + '"><span><<</span></a>';
   }else{
    str += '<span>|<</span>';
    str += '<span><<</span>';
   }
  }
  for(var i=start; i<=end; i++){
   if(i == this.index){
    str += '<span class="on">' + i + "</span>";
   }else{
    str += '<a href="javascript://' + i + '"><span>' + i + "</span></a>";
   }
  }
  if(self.pageCount > 1){
   if(self.index != self.pageCount){
    str += '<a href="javascript://' + (self.index+1) + '"><span>>></span></a>';
    str += '<a href="javascript://' + self.pageCount + '"><span>>|</span></a>';
   }else{
    str += '<span>>></span>';
    str += '<span>>|</span>';
   }
  }
  str += ' 一共' + self.pageCount + '页, ' + self.itemCount + '条记录 ';
  str += "</div><!-- /.pagerView -->\n";
  self.container.innerHTML = str;
  var a_list = self.container.getElementsByTagName('a');
  for(var i=0; i<a_list.length; i++){
   a_list[i].onclick = function(){
    var index = this.getAttribute('href');
    if(index != undefined && index != ''){
     index = parseInt(index.replace('javascript://', ''));
     self._onclick(index)
    }
    return false;
   };
  }
 };
}

</script>
</head>
<body>
<h1>分页控件PagerView示例</h1>
<div id="pager" style="width: 900px; margin: 20px; padding: 4px; border: 1px solid #999;">
</div>
<div id="info" style="text-align: center; width: 900px; margin: 0 20px; padding: 4px; border: 1px solid #999;">
</div>
<script type="text/javascript">

var pager = new PagerView('pager');
pager.itemCount = 301;
pager.size = 5;
pager.index = 3;
pager.onclick = function(index){
 document.getElementById('info').innerHTML = '现在翻到第' + index + '页';

};
pager.render();

</script>
</body>
</html>

分享到:
评论
2 楼 张玉龙 2011-07-19  
1 楼 Sunshinesky 2011-07-18  
     

相关推荐

    javascript分页控件20090313

    下面我们将深入探讨JavaScript分页控件的相关知识点。 一、JavaScript分页的基本原理 1. 数据分块:JavaScript分页控件的核心思想是将大量数据分成若干小块(页)进行加载。每次只加载用户当前浏览的一页数据,...

    javascript分页控件20090312

    JavaScript分页控件是网页开发中常用的一种组件,主要用于处理大量数据时的页面显示,以提高用户体验和网页加载效率。2009年3月12日发布的这个资源可能是一个JavaScript实现的分页插件或者代码库,它可以帮助开发者...

    分页控件;分页控件;分页控件

    - **JavaScript**:常见的库如jQuery UI、Bootstrap、AngularJS和Vue.js都提供了分页组件。 - **PHP**:例如Laravel框架内置了分页功能,可以轻松实现。 - **Java**:Spring Boot框架提供了Pageable接口和Page对象,...

    2个分页控件(其中一个是用JAVASCRIPT写的)

    创建JavaScript分页控件意味着所有的分页逻辑和渲染都将发生在客户端,这可能包括计算总页数、响应用户点击事件以及更新页面内容。 对于非JavaScript的分页控件,通常的工作流程是:当用户请求一个特定页码时,...

    完善的JAVASCRIPT分页控件20090330

    自己做的JAVASCRIPT分页控件,这个CS源代码文件文件

    C#超级好用的分页控件

    本篇文章将详细探讨“C#超级好用的分页控件”的核心概念、实现原理以及其在实际项目中的应用。 首先,我们要明白什么是分页控件。分页控件是Web应用中一种常见的用户界面组件,主要用于展示大数据集时进行分段显示...

    JS分页控件+CSS

    这里提到的"JS分页控件+CSS"是一个针对网页分页功能的解决方案,结合了JavaScript(JS)和层叠样式表(CSS)的技术。下面我们将深入探讨这两个关键组成部分以及它们如何协同工作。 **JS分页控件** JavaScript是一...

    JS分页控件+CSS样式

    本文将详细介绍JavaScript(JS)实现的分页控件及其与CSS样式的结合应用。 一、JS分页控件的基本原理 JS分页控件主要是通过JavaScript来动态生成分页按钮,并处理用户点击分页按钮时的事件,以实现页面内容的切换。...

    javascript分页控件

    本主题将深入探讨JavaScript分页控件的设计原理、实现方式以及相关技术点。 首先,JavaScript是一种运行在客户端的脚本语言,它可以直接在用户的浏览器上执行,无需服务器支持。因此,使用JavaScript实现的分页控件...

    aspnetpager.dll分页控件

    **ASP.NET分页控件详解** 在ASP.NET开发中,数据展示经常涉及到大量的记录,这时分页功能就显得尤为重要。`aspnetpager.dll`是一个专为ASP.NET平台设计的分页控件,它能帮助开发者轻松实现高效、易用的分页效果。...

    非常好用的分页控件

    在IT领域,分页控件是一种常见的用户界面组件,它被广泛应用于Web前端、后台以及桌面应用程序(如WinForms)中,以帮助用户更有效地浏览和管理大量的数据。本篇文章将详细探讨“非常好用的分页控件”的相关知识点。 ...

    自己做的自定义分页控件

    在IT行业中,自定义分页控件是一种常见的需求,特别是在Web开发中,为了提供良好的用户体验,需要对大量的数据进行分页展示。本项目名为“自己做的自定义分页控件”,作者通过自己的实践解决了在使用现有分页控件时...

    分页控件和List绑定排序

    在IT行业中,分页控件和列表数据绑定是常见的数据展示技术,特别是在处理大量数据时,为了提高用户体验和页面加载速度。本示例提供了一个自定义的分页控件,它具备首页、上一页、下一页、尾页以及跳转功能,并允许...

    MvcPager分页控件,支持MVC分页

    MvcPager分页控件是专为ASP.NET MVC框架设计的一款高效、灵活的分页组件,旨在简化在MVC应用程序中实现分页功能的过程。这款控件不仅提供了丰富的自定义选项,还能与各种数据源无缝集成,包括Entity Framework、...

    非常好的分页控件

    在.NET开发环境中,分页控件是不可或缺的一部分,特别是在处理大量数据时,为了提高用户体验和网页性能,分页成为了一种必要的数据展示方式。标题提到的"非常好的分页控件"是一个专门用于实现这一功能的组件,它带有...

    Webdiyer.AspNetCore.MvcCorePager分页控件改进版

    【Webdiyer.AspNetCore.MvcCorePager 分页控件改进版】是一个专为ASP.NET MVC Core设计的高效、可自定义的分页组件。该组件旨在提供更完善的用户体验,通过增加分页大小切换、跳转页功能以及总记录数的显示,使得...

    javascript 分页控件

    JavaScript 分页控件是一种在网页上实现数据分页功能的脚本组件,它允许用户以交互的方式逐页浏览大量的数据,提高网页加载速度并优化用户体验。分页控件通常包括“上一页”、“下一页”、页码选择等功能,使得用户...

    分页控件

    在编程领域,分页控件有多种实现方式,例如在Web开发中,HTML、CSS和JavaScript可以构建基本的分页功能,而服务器端语言如PHP、ASP.NET、Java等则负责处理数据查询。在桌面应用中,如Windows Forms或WPF,开发者可以...

    JQuery分页控件,提供源代码,存JS,支持任何语言

    在压缩包中,`源代码`文件夹包含了实现这个分页控件的所有JavaScript源码,你可以直接引用或对其进行二次开发。`调用示例`文件可能是HTML或JavaScript文件,提供了如何在实际项目中调用和配置分页控件的实例,这对于...

Global site tag (gtag.js) - Google Analytics