关于分页插件pagination的应用及遇到的问题(用ajax请求数据进行拼接后分页显示)

来源:互联网 发布:数据正态分布统计方法 编辑:程序博客网 时间:2024/05/29 05:07

看pagination的官网http://paginationjs.com/index.html上面对dataSource的使用方法有四种类型,分别为:array、object、function和url。但是实验的话发现不能这样直接使用(可能是我自己理解能力的问题)。
要直接写成如下样式才可用:

var sources=function () {      var result = [];       for (var i = 1; i < 196; i++) {            result.push(i);        }       return result; }();

在container.pagination()里面的DataSource写成:
dataSource:sources,的样式(这是官网截取例子的小片段)
其他照着官网上的示例写就行了。
官网上(关于dataSource的用法)是这个样子:

dataSource: function(done) {    $.ajax({        type: 'GET',        url: '/test.json',        success: function(response) {            done(response);        }    });}

直接使用的话,不知为什么不会正常显示。
如果直接用ajax请求回来的json数据进行拼接之类的,我是这样写的:
html部分不变:

<div id="pagination-demo1"></div><div class="data-container"></div>

js部分为:

var container = $('#pagination-demo1');var options = {            dataSource: function () {    var result = [];           $.ajax({            async:false,    //不可缺少,否则数据会出问题       type: 'GET',       url: '11.json',       success: function(response) {        var resultaa=[];           $.each(response.data, function(i) {      resultaa.push(response.data[i]);      });       result=resultaa;       console.log(result);       }   });      return result;       }(),            callback: function (response, pagination) {console.log(response)                //window.console && console.log(response, pagination);                var dataHtml = '';                $.each(response, function (index) {    //console.log(item[index])            dataHtml += '<div class="age"><h2>' + response[index].name+',<span>age是<b>'+response[index].age+'</b></span></div>' + '</h2>';               //dataHtml += '<li>' + item + '</li>';           });                container.next().html(dataHtml);//此处的prev()可以改为next()方法是分页签放在内容的上面,但是html的部分也要进行相应的位置调整才可以(次序换一下)            }        };        container.pagination(options);还可以让js这样写:(这样不必设置ajax的请求是同步的)var result = [];    $.ajax({        type:"get",        url:"11.json",        success:function(data){            if(data.data==""){               return false;            }else{               $.each(data.data, function(i) {                  result.push(data.data[i]);               });            }        },complete:function(){            var container = $('#pagination-demo1');            var sources = function () {               return result;            }();            var options = {                dataSource: sources,                pageSize: 5,    //单页显示数据量                callback: function (response, pagination) {    //console.log(response)                   //window.console && console.log(response, pagination);                var dataHtml = '';                $.each(response, function (index) {                  dataHtml += '<div class="age"><h2>' + response[index].name+',<span>age是<b>'+response[index].age+'</b></span></div>' + '</h2>';                    });                     container.prev().html(dataHtml);                   }               };               container.pagination(options);            }        });

11.json的代码:

{"success": true,"msg": null,"detail": null,"data": [{"name": "易派客-得力旗舰店1","age":"1"}, {"name": "北京慧缘有限责任公司2","age":"2"}, {"name": "得力集团有限公司3","age":"3"}, {"name": "易派客-得力旗舰店4","age":"4"},  {"name": "北京慧缘有限责任公司5","age":"5"}, {"name": "得力集团有限公司6","age":"6"}, {"name": "易派客-得力旗舰店7","age":"7"},  {"name": "北京慧缘有限责任公司8","age":"8"},  {"name": "得力集团有限公司9","age":"9"}, {"name": "易派客-得力旗舰店10","age":"10"},  {"name": "北京慧缘有限责任公司11","age":"11"}]}

效果如图所示这里写图片描述

0 0
原创粉丝点击