kkpager的改进,Ajax数据变化但是页码不变的有关问题

kkpager的改进,Ajax数据变化但是页码不变的问题
kkpager 是一个简单分页展示插件,需要依赖jquery。
下载地址:http://www.oschina.net/action/project/go?id=29450&p=download
官方文档地址:https://github.com/pgkk/kkpager

在线测试链接: 
蓝色皮肤:http://pgkk.github.io/kkpager/example/pager_test.html 
橘色皮肤:http://pgkk.github.io/kkpager/example/pager_test_orange_color.html

click模式:http://pgkk.github.io/kkpager/example/pager_test_clickmode.html

存在的问题:

在用ajax刷新动态转入页码,无论如何更改页码,都是显示第一次的页码

解决办法.

修改js文件

调用

这个方法是网上的办法,可能有的朋友第二步没找到,我写一下我的版本

kkpager.generPageHtml({
                pno: pageNo,
                //总页码
                total: totalPage,
                //总数据条数
                totalRecords: totalRecords,
                mode: ‘click‘,//默认值是link,可选link或者click
                click: function (n) {
                    this.selectPage(n);
                    LoadWorkitem(n);
                    return false;
                },
                getHref: function (n) {
                    return ‘#‘;
                }
            },true);

在这段代码中,generPageHtml最后加上了true,是为了重新加载config配置

以上方法 可以修改 页码,但是 点击页码时,页数又会变动

可做如下修改:

kkpager的用法。

但是在调用动态数据的时候发现两个问题

1.Ajax数据变化但是页码不变的问题,方法来自网上

2.按查询条件重新生成数据和分页,点击分页事件后totalpage 和totalrecord 和没加条件查询的数据一样。

主要原因是因为客户端不会帮你保留总页码数和总条数,

所以在按查询条件重新生成数据时,用hidden按钮绑定你的总页数和总条数

下面是ajax 调用后台数据,返回的总页数和总条数,都存放在hidden里了

 $.ajax({
        type: "get",
        dataType: "json",
        url: urlStr2,
        success: totalOnsuccess
    });

//根据返回的total 加载数据和分页
function totalOnsuccess(data) {
    var resInfoArray = eval(data);

    totalRecords = resInfoArray[0].TOTAL;

    totalPage = Math.ceil(totalRecords / pageSize); //向上取整
    $("#totalpages").val(totalPage); //绑定获取的总页数
    $("#totalRecords").val(totalRecords);//绑定获取的总条数

    if (!pageNo) {
        pageNo = 1;
    }
    if (totalRecords > 0) {

        FkeepPage(pageNo, totalPage, totalRecords);    //调用分页插件
    }
    else {
        $("#kkpager").html("<div style=‘text-align:center‘>没有符合条件的数据</div>")

    }
    queryInfoTable(tablename, pageSize, pageNo, where); //加载表格数据

}
/*
pageNo:当前页
totalPage:总页数
totalRecords:总条数
*/
function FkeepPage(pageNo, totalPage, totalRecords) {

    //生成分页
    //有些参数是可选的,比如lang,若不传有默认值
    kkpager.generPageHtml({
        pno: pageNo,
        //总页码
        total: totalPage,
        //总数据条数
        totalRecords: totalRecords,
        mode: ‘click‘,//默认值是link,可选link或者click
        click: function (n) {

            // do something
            // this.selectPage(n); //默认的,因为不能符合我的要求改成下面的

this.selectPage(n, $("#totalpages").val(), $("#totalRecords").val()); 
            queryInfoTable(tablename, pageSize, n, where); //加载表格数据
            return false;
        }
        /*
        ,lang                : {
            firstPageText            : ‘首页‘,
            firstPageTipText        : ‘首页‘,
            lastPageText            : ‘尾页‘,
            lastPageTipText            : ‘尾页‘,
            prePageText                : ‘上一页‘,
            prePageTipText            : ‘上一页‘,
            nextPageText            : ‘下一页‘,
            nextPageTipText            : ‘下一页‘,
            totalPageBeforeText        : ‘共‘,
            totalPageAfterText        : ‘页‘,
            currPageBeforeText        : ‘当前第‘,
            currPageAfterText        : ‘页‘,
            totalInfoSplitStr        : ‘/‘,
            totalRecordsBeforeText    : ‘共‘,
            totalRecordsAfterText    : ‘条数据‘,
            gopageBeforeText        : ‘&nbsp;转到‘,
            gopageButtonOkText        : ‘确定‘,
            gopageAfterText            : ‘页‘,
            buttonTipBeforeText        : ‘第‘,
            buttonTipAfterText        : ‘页‘
        }*/
    },true);//加true 默认没有,因为页码数不更新,所以加上了
}

后面的是修改kkpager.js

主要就是把里面的

//不刷新页面直接手动调用选中某一页码
selectPage: function (n) {
this.generPageHtml(this._config,true);
},

  

改成

//不刷新页面直接手动调用选中某一页码
selectPage: function (n, b, c) {
this._config[‘pno‘] = n;
this._config[‘total‘] = b;
this._config[‘totalRecords‘] = c;
this.generPageHtml(this._config,true);
},

参考:http://www.myexception.cn/ajax/1910086.html

http://www.bubuko.com/infodetail-1906367.html

时间: 2024-10-01 05:13:04

kkpager的改进,Ajax数据变化但是页码不变的有关问题的相关文章

kkpager的改进,Ajax数据变化但是页码不变的问题,kkpagerajax

最近做项目用到了kkpager来做分页,在一个页面只是调用一次的时候不会出现问题,但是在一个页面多次调用就出现问题了. 在网上搜集了好久,终于找到了解决方法,记录下来方便以后使用.希望也可以方便需要的朋友们! kkpager 是一个简单分页展示插件,需要依赖jquery. 下载地址:http://www.oschina.net/action/project/go?id=29450&p=download官方文档地址:https://github.com/pgkk/kkpager 在线测试链接: 蓝

kkpager的改进,Ajax数据变化但是页码不变的问题

kkpager 是一个简单分页展示插件,需要依赖jquery. 下载地址:http://www.oschina.net/action/project/go?id=29450&p=download 官方文档地址:https://github.com/pgkk/kkpager 在线测试链接: 蓝色皮肤:http://pgkk.github.io/kkpager/example/pager_test.html 橘色皮肤:http://pgkk.github.io/kkpager/example/pag

kkpager的改进

其开源地址见:https://github.com/pgkk/kkpager 存在的问题: 在用ajax刷新动态转入页码,无论如何更改页码,都是显示第一次的页码 改进 调用

v3学院带你学习-时序逻辑中时钟上升沿对齐数据变化时的处理技巧的FPGA实现

此文章为原创出自 V3学院 www.v3edu.org 时序逻辑中,数据都是在时钟的上升沿或者下降沿时刻进行采样的,以上升沿为例,时钟采数据时应该采的是时钟上升沿左边变量的值,运算的结果体现在时钟上升沿的右边,但是,在用modelsim等一些仿真工具进行仿真的时候,如果时钟上升沿刚好和数据变化对齐,就会出现与上述理论不一致的原因,如下仿真波形图: 上图中的例子是用时钟上升沿控制变量a和b按位或运算并且把结果赋值给c的小实验,根据前面说的理论,黄线位置处,时钟上升沿采的变量a和b的值都为0,进行或

Ajax --- 数据请求

下面主要介绍(JS原生)数据请求的主要步骤: Ajax 数据请求步骤: 1.创建XMLHttpRequest对象 2.准备数据发送 3.执行发送 4.指定回掉函数 第一步:创建XMLHttpRequest对象 1 var xhr = new XMLHttpRequest(); // 标准浏览器 2 3 var xhr = new ActiveXObject('Microsoft.XMLHTTP'); // IE6 第二步:使用 open() 方法将参数传入 1 xhr.open('get','.

Angularjs【监听数据的变化】和【如何修改数据】和【数据变化的传播】

一:监听数据的变化: 由于编译仅仅在启动引导时执行一次,这意味着我们的link函数只会被调用一次,那么, 如果数据变化,在界面上将不会有任何反馈,即界面和数据将变得不同步了. 这需要持续监听数据的变化. 好在AngularJS的scope对象可以使用$watch()方法,对建立在其上的变量的变化进行监听: watch(watchExpression,listener,[objectEquality]);watch方法要求传入三个参数: watchExpression - 要监听的表达式,比如:"

处理程序关键数据变化的一种软件设计

项目中遇到的所有问题可以归纳如下: 1.本地逻辑外地控制 2.外地逻辑本地透明 3.所有命令皆为被动 限于子板处于从属地位,子板与主控间传递的命令事实上只是一种控制信号的传输.所有的功能跟随控制信号而发生变化,或者更确切地说,功能向控制数据的方向调整变化. 数据控制逻辑,而不是逻辑控制逻辑,这是所有项目最显著的特征.这点似乎显而易见,不值一提.仔细想想,这也是常规应用程序的一搬特征,区别于工业控制.自动控制等. 守候数据变化,变化驱动逻辑顺次展开.结合多相机拼接的软件设计,简单概括一般问题的解决

触发器记录表某一个字段数据变化的日志

p.p1 { margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px Helvetica } p.p2 { margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px "PingFang SC" } p.p3 { margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px Helvetica; min-height: 14.0px } span.s1 { font: 12.0px &qu

python使用mysql connection获取数据感知不到数据变化问题

在做数据同步校验的时候,需要从mysql fetch数据和hbase的数据进行对比,发现即使mysql数据变化了,类似下面的代码返回的值还是之前的数据.抽取的代码大概如下: 1 import MySQL 2 3 conn = MySQL.connect(host = mysql_config['host'], 4 user = mysql_config['username'], 5 password = mysql_config['password'], 6 port = int(mysql_c