easyui-pagination点击下一页直接跳转到最后一页的可能原因

今天做到聊天记录展示页面的时候发现一个bug:初次进入页面加载出第一页的数据,点击下一页的时候不是到第二页而是到最后一页。 如下图所示:

这个bug确实让我很郁闷,最初以为是后台的问题,调试了一会儿发现跟后台没关系。

随后检查了下js代码,我的pagination js是这样写的: Js代码

$('#pp').pagination({

total:'${chatHistory.total}', pageNumber: '${pageNum}', pageSize:'${pageSize}',

onSelectPage:function(pageNumber, pageSize){ $(this).pagination('loading');

//alert('pageNumber:'+pageNumber+',pageSize:'+pageSize);

$(this).pagination('loaded');

self.location.href=\oChatHistory.action?senderId=${senderId}&page=\\ } });

上面pagination的pageNumber是从hidden标签中取得值,经过alert('${pageNum}'),初次进入页面时,弹出的值 确实是“1”。 找了半天没结果,我索性把pageNumber :'${pageNum}'改成pageNumber : 1,结果bug消失了!

我非常纳闷:pageNumber : '${pageNum}'向后台传的值是1,而pageNumber : 1向后台传的值也是1,两者完全没区别,但为什么后者点下一页就不会跳到最后一页呢?

最后找到原因:js数据类型问题。我随后把代码改成这样:pageNumber : parseInt('${pageNum}')。ok,bug消失了,原来'${pageNum}'的值是一个字符串“1”,pageNumber只接收 整数,无法识别字符串没结果造成了刚才的问题。

经过上面的排查,我大概猜想easyui的整个运行过程:

第一次向后台发送请求时,datagrid会获取pageNumber中的值,并且把pageNumber的值保存起来。

用户点击下一页的时候,datagrid会使pageNumber+1然后把数据向后台发送,但是正如上面所说:如果遇到$(\存的是一个字符串“1”, 结果“1”+1会是一个字符串而不是一个整数,此时datagrid没法识别,就选择获得最后一页的数据。

最新文章

  1. 【JavaScript】javascript 方法 test()
  2. Map/Reduce 工作机制分析 --- 作业的执行流程
  3. buildroot 使用小记 - 2 源文件目录结构
  4. 日暮·第一章·决斗
  5. qq空间答案
  6. [Papers]NSE, $\pi$, Lorentz space [Suzuki, JMFM, 2012]
  7. Servlet中乱码问题
  8. josn 转php
  9. C++学习之重载运算符1
  10. <EditText /> This text field does not specify an inputType or a hint
  11. Andorid类似Fragment更换布置方法
  12. spl之文件处理
  13. Nature:新发现挑战神经元作用传统理论 [转自科学网]
  14. 一个简单的jquery左右列表内容切换应用
  15. Java网络编程中异步编程的理解
  16. python网页爬虫开发之二
  17. springboot配置文件的配置
  18. 我应该记录一下我不太了解的一些c语言函数
  19. Js Object转化为json,json转Object
  20. Hdu1547 Bubble Shooter 2017-01-20 18:38 44人阅读 评论(0) 收藏

热门文章

  1. 转】RMySQL数据库编程指南
  2. 策略模式--Java篇
  3. Bing图片下载器(Python实现)
  4. asterisk-java ami3 属性改变监听
  5. c++通过管道pipe获取cmd输出的字符
  6. Android(java)学习笔记198:ContentProvider使用之内容观察者(观察发出去的短信)
  7. mysql 优化策略
  8. Myeclipse下载
  9. 「 HDU P4734 」 F(x)
  10. 使用sphinx