`
dyllove98
  • 浏览: 1409462 次
  • 性别: Icon_minigender_1
  • 来自: 济南
博客专栏
73a48ce3-d397-3b94-9f5d-49eb2ab017ab
Eclipse Rcp/R...
浏览量:39188
4322ac12-0ba9-3ac3-a3cf-b2f587fdfd3f
项目管理checkList...
浏览量:80266
4fb6ad91-52a6-307a-9e4f-816b4a7ce416
哲理故事与管理之道
浏览量:133389
社区版块
存档分类
最新评论

对jquery返回的json对象进行分页处理的 javascript类

阅读更多
//对分页资料进行处理的类
/*
options:
{
   Data:数据,jquery返回的json类型资料
   PageSize:每页数量
   PageStart:显示的记录的起始位置
   CallBack: 数据循环显示的回调函数
   CallBackBefort:数据循环显示前使用的回调函数
}
AttriBute:
{
   PageSize:每页数量
   PageStart:起始资料
}
function:
{
   SetData(数据源,是否设置起始记录位置为0):重新设置一个数据源
   PageCount():当前数据源的记录总数
   CallBack():
   CallBackBefore():
   get():处理数据,获得相关的正确的分页资料,如果实际位置小于0 则置成第一页,如果实际位置大于记录数,则设置成最后一页
   Show(跳转参数):根据参数,处理分页数据,并且执行两个回调函数(0:第一页,1:上一页,2:下一页 ,其他:最后页)
}

*/
var zjPagination=function(options)
{
var options=options || [];

//把数据封装起来,不允许从外面再更新数据
var _Data=options.Data || [];
this.Data=function()
{
   return _Data; 
}
this.SetData=function(o,blnRefStart)
{
   blnRefStart=blnRefStart||true;
   _Data=o || this._Data;
   if(blnRefStart)
   {
    this.PageStart=0; 
   }
}
//分页数量 默认10条记录一页
this.PageSize=options.PageSize || 10 ;
//起始记录位置
this.PageStart=options.PageStart || 0;
//记录总数
this.PageCount=function()
{
   return $(_Data).size();
}
//数据循环时候的回调函数 i:数据的索引   items:对应对象
this.CallBack=options.CallBack || function(i,items){ return [];}
//在数据循环回调前执行的函数
this.CallBackBefore=options.CallBackBefore || function(){}
this.get=function()
{
   var intSize=this.PageCount();
  
   if(this.PageStart>=intSize)
   {
    this.PageStart=parseInt(intSize/this.PageSize)*this.PageSize;
    if(this.PageStart>=intSize)
    {
     this.PageStart=intSize-this.PageSize;
    }
   }
   if(this.PageStart<0)
   {
    this.PageStart=0;
   }
  
   var refO=new Object();
   var o=$(this.Data() || []);
   if(o.size()>=0){
    var j=0;
    for(var i=this.PageStart;i<o.size();i++)
    {
     if(j>=this.PageSize)
     {
      break;
     }
     refO[j]=o[i];
     j++;
    }
    //this.PageCount=intSize;
   
    return refO;
   }else{
    return []; 
   }
}

//获得最开始资料
this.First=function()
{
   this.PageStart=0;
   return this.get();
}
//获得最后一页资料
this.Last=function()
{
   this.PageStart=this.PageCount();
   return this.get();
}
//上翻页
this.Up=function()
{
   this.PageStart=this.PageStart-this.PageSize;
   return this.get();
}
//下翻页
this.Down=function()
{
   this.PageStart=this.PageStart+this.PageSize;
   return this.get();
}

this.Show=function(intPageType)
{
   intPageType=intPageType || 0;
   var o=[];
   switch(intPageType)
   {
    case 0:
     o=this.First();
    break;
    case 1:
     o=this.Up();
    break;
    case 2:
     o=this.Down();
    break;
    default:
     o=this.Last();
    break;
   }
//   o=this.get();
   this.CallBackBefore();
   $.each(o,this.CallBack);
}
}

使用

var thisPage=new zjPagination({
      CallBack:function(a,b){ //此回调函数的写法,参考 $.each(d,function(a,b){})} 中的回调
      CallBackBefore:function(){ alert('开始循环取值了'); }
});

thisPage.SetData(json);

<a href="javascript:thisPage.Show(1);">上一页</a>
分享到:
评论
1 楼 那年如此拉风 2011-12-07  
看不懂啊,唉。

相关推荐

    jquery+json 无刷新分页

    - Web服务返回JSON格式的分页数据,jQuery接收到数据后,使用`$.parseJSON()`或`JSON.parse()`方法解析JSON字符串为JavaScript对象。 - 使用这些数据更新页面上的表格或列表,实现无刷新的效果。 ### 4. 示例代码 ...

    jquery+json的无刷新分页

    在前后端通信中,JSON通常作为数据传输的载体,因为它与JavaScript语法高度兼容,能够无缝转换为JavaScript对象。 三、无刷新分页原理 无刷新分页的核心是利用Ajax技术进行异步数据请求。用户在翻页时,页面不需要...

    jquery获取json数据的并分页案例

    在Web开发中,服务器通常会通过Ajax请求返回JSON数据,供前端JavaScript处理和展示。 要使用jQuery获取JSON数据,我们通常会使用`$.ajax()`或`$.getJSON()`方法。`$.ajax()`是一个更全面的异步HTTP(Ajax)请求方法...

    jquery json 搜索与分页效果代码.rar

    总结来说,"jquery json 搜索与分页效果代码"这个压缩包可能包含了一个示例项目,演示了如何利用jQuery处理前端搜索和分页,同时通过Ajax与后端交互,处理JSON数据。这个例子对于学习和实践Web前端开发中的数据检索...

    jQuery json动态数据表格分页代码

    在这个场景中,jQuery被用来处理DOM操作,如动态加载表格数据和执行分页效果。 2. **JSON(JavaScript Object Notation)**:JSON是一种轻量级的数据交换格式,易于人阅读和编写,同时也易于机器解析和生成。在...

    Jquery+Json实现无刷新分页插件

    因为Json可以直接被JavaScript解析为对象,所以在Jquery中处理Json数据非常方便。 无刷新分页插件的工作原理如下: 1. 用户请求:当用户点击分页按钮时,Jquery会捕获这个事件,并通过Ajax(Asynchronous ...

    jquery json分页实例

    本实例将深入探讨如何使用jQuery实现基于JSON的无刷新分页功能,这是一种提高用户体验的有效方法,因为它允许用户在不重新加载整个页面的情况下查看更多的内容。 **jQuery** 是一个轻量级的JavaScript库,它简化了...

    自己写的jQuery分页根据json分页

    本项目名为“自己写的jQuery分页根据json分页”,表明这是一个使用jQuery库实现的自定义分页功能,该功能依赖于JSON数据进行数据交换。 jQuery是一个轻量级、高性能的JavaScript库,它简化了HTML文档遍历、事件处理...

    asp.net+jquery+json+分页

    总结来说,这个项目展示了如何在ASP.NET中利用jQuery进行Ajax请求,结合JSON传输数据,实现动态分页。用户无须刷新整个页面,只需点击分页按钮,后台就能通过Handler处理请求,返回指定页码的数据,再由jQuery更新...

    struts2 spring2 ibatis2 jquery json 页面无刷新分页

    在分页场景中,Spring 可以管理业务对象和数据访问层,如通过Spring的DAO支持与数据库进行交互,获取和存储分页数据。此外,Spring AOP可以用于记录日志、事务管理等操作,确保分页过程的完整性和一致性。 **iBatis...

    Servlet+json+js(jquery)+jsp实现分页

    本项目使用Servlet、JSON、JavaScript(JQuery)和JSP技术实现了一个简单易懂、功能完善的分页解决方案。 **Servlet** 是Java服务器端编程的基础,它负责处理HTTP请求和响应。在分页应用中,Servlet主要负责接收...

    jquery+json实现页面无刷新分页

    在分页场景下,服务器端通常会生成一个JSON对象,包含了当前页的数据,然后通过Ajax请求传递给客户端。 实现页面无刷新分页的步骤如下: 1. **HTML结构**:在页面上设置好分页的基础结构,例如页码按钮和内容区域...

    jquery+json 实现页面无刷新列表分页

    4. **处理响应**:在jQuery的AJAX回调函数中,解析JSON响应,然后动态更新列表内容,同时更新分页导航的状态。 5. **事件绑定**:确保每次分页链接被点击时,都会执行上述过程,可以使用`.on()`方法绑定事件监听器...

    Ajax分页 C# +jquery +json

    - C#后端接收到请求后,返回包含分页数据的JSON字符串,例如:`{ "data": [ { "id": 1, "name": "item1" }, ... ], "total": 50 }`,其中`data`是实际数据,`total`是总记录数。 4. **前端处理响应**: - jQuery...

    jquery json 搜索与分页效果代码.zip

    本资源“jquery json 搜索与分页效果代码.zip”显然是一个包含示例代码的压缩包,用于演示如何利用jQuery库处理JSON数据并实现搜索及分页功能。以下是对这两个关键知识点的详细说明: **jQuery** 是一个轻量级的...

    基于Jquery+Ajax+Json实现分页显示附效果图

    本文将详细介绍如何利用JQuery、Ajax与JSON技术来实现动态分页显示,并通过一个具体案例进行阐述。 #### 技术栈介绍 - **JQuery**:一款快速、简洁的JavaScript库,极大地简化了HTML文档遍历、事件处理、动画等...

    jQuery,json传数据,分页的js和css代码

    jQuery获取到JSON数据后,可以使用JavaScript的内置函数`JSON.parse()`将其转换为JavaScript对象,便于进一步处理。例如: ```javascript var jsonData = '{"name":"John", "age":30, "city":"New York"}'; var ...

    Json Jquery 自动生成table的无刷新分页插件整合pagination

    在JavaScript中,反射主要通过内置的对象如`Object`、`Function`等实现,但在JSON和jQuery的分页插件中,反射的概念并不直接涉及,更多的是涉及到数据的解析和方法的调用。 在提供的压缩包文件中,`jquery-1.5.1.js...

Global site tag (gtag.js) - Google Analytics