jqueryeasyUIpagination分页控件点击下一页后跳转到最后一页的问题

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

jqueryeasyUIpagination分页控件点击下⼀页后跳转到最后⼀页的问题
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="<%=request.getContextPath()%>/message/t oChatHistory.action?
senderId=${senderId}&page="+pageNumber+ "&rows="+pageSize;
}
});
上⾯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然后把数据向后台发送,但是正如上⾯所说:如果遇到
$("#pageNo").val()存的是⼀个字符串“1”,结果“1”+1会是⼀个字符串⽽不是⼀个整数,此时datagrid没法识别,就选择获得最后⼀页的数据。

正确的js代码:。

相关文档
最新文档