`

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

 
阅读更多

今天接到一个bug:初次进入页面easyui-datagrid加载出第一页的数据,点击下一页的时候不是到第二页而是到最后一页。

如下图所示:



 

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

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

$('#xxTable').datagrid({
		pageNumber : $("#pageNo").val(),
		loadMsg:'数据加载中,请稍后...',
		pageList:[10], //设置每页显示多少条
		//查询条件
		queryParams:{
			"userName":userName,
			"startTime":startTime,
			"endTime":endTime,
			"conditionDto_levelId":conditionDto_levelId,
			"conditionDto_stateId":conditionDto_stateId,
			"companyName":companyName,
		},
		onLoadError:function(){
			alert('数据加载失败!');
		},
		onClickRow:function(rowIndex, rowData){
			//取消选择某行后高亮
			$('#infoMemberTable').datagrid('unselectRow', rowIndex);
		},
		onLoadSuccess:function(){
			//保存当前页码到hidden标签中
                                setPageNumber();
		}
	}).datagrid('acceptChanges') ;

     上面datagrid的pageNumber是从hidden标签中取得值,经过alert($("#pageNo").val()),初次进入页面时,弹出的值确实是“1”。(注:之所以pageNumber : $("#pageNo").val()是为了保护用户输入)。

     找了半天没结果,我索性把pageNumber : $("#pageNo").val()改成pageNumber : 1,结果让我大跌眼镜:bug消失了!

     我非常纳闷:pageNumber : $("#pageNo").val()向后台传的值是1,而pageNumber : 1向后台传的值也是1,两者完全没区别,但为什么后者点下一页就不会跳到最后一页呢?

 

    最后经过同事提醒:是不是js数据类型问题。我随后把代码改成这样:pageNumber : parseInt($("#pageNo").val())。ok,bug消失了,原来$("#pageNo").val()是一个万恶的字符串“1”,pageNumber只接收整数,无法识别字符串没结果造成了刚才的问题。

 

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

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

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

  • 大小: 35.5 KB
分享到:
评论
4 楼 hwb198229 2016-02-24  
感谢楼主,解决了
3 楼 lw2078 2014-09-30  
我也遇到同样的问题了,解决了~
2 楼 ostial 2012-04-17  
1 楼 alexlovy 2012-02-03  
嗯,问题解决了,THX

相关推荐

    easyui-datagrid2-demo.zip

    "easyui-datagrid2-demo.zip" 文件包含了使用 EasyUI Datagrid 的一个示例,帮助开发者了解如何实现数据的加载、分页、排序等基本操作。 在这个 demo 中,我们可以从以下几个方面学习 EasyUI Datagrid 的使用: 1....

    Easyui-DataGrid表头拖动效果

    UI设计在一个系统中的重要性是不容忽视的,我们开发人员要做到:让用户去控制...给你的Easyui-DataGrid 表头添加一点料吧 Easyui-Datagrid—表头灵活显示http://blog.csdn.net/u010293698/article/details/47956865

    easyui-datagrid之间拖拽效果demo

    "easyui-datagrid 之间拖拽效果 demo" 重点展示了如何在两个 EasyUI Datagrid 之间实现数据的拖放功能,这对于提升用户体验,尤其是处理大量数据时的交互性至关重要。 首先,Datagrid 是 EasyUI 提供的一种表格控件...

    easyui-datagrid21-demo.zip

    在本压缩包 "easyui-datagrid21-demo.zip" 中,我们找到了一个关于 EasyUI Datagrid21 的演示实例,该实例包含了一个 HTML 页面、一个 PHP 后端接口以及相关的图片和数据资源。下面将对这个演示实例进行详细的解析。...

    easyui1.7 官网示例大全

    easyui\easyui-datagrid10-demo.zip easyui\easyui-datagrid11-demo.zip easyui\easyui-datagrid12-demo.zip easyui\easyui-datagrid13-demo.zip easyui\easyui-datagrid14-demo.zip easyui\easyui-datagrid15-demo....

    easyui-datagrid导出至Excel插件

    easyui-datagrid导出至Excel插件,中文没有乱码问题。

    easyui-datagrid-rowediting

    "easyui-datagrid-rowediting"是一个关于EasyUI Datagrid组件的特定功能,允许用户在表格行内进行编辑,实现多行数据的增删改查。本文将详细探讨这个功能的实现原理和应用场景。 一、EasyUI Datagrid简介 EasyUI的...

    easyui-textbox和easyui-combobox的onchange事件响应实例

    对于 `easyui-textbox`,我们通过 `onchange` 属性直接绑定了一个名为 `handleTextboxChange` 的函数,该函数会弹出一个警告框显示当前输入框的值。对于 `easyui-combobox`,我们则使用 `data-options` 属性的 `...

    Spring Boot 系列教程 EasyUI-datagrid

    **Spring Boot 系列教程 EasyUI-datagrid** 在IT领域,Spring Boot是一个极其流行的Java框架,它简化了基于Spring的应用程序开发,通过自动配置和起步依赖使得开发者可以快速上手。EasyUI则是一个轻量级的前端框架...

    easyui-datagrid可编辑可过滤的DEMO

    本文将深入探讨“easyui-datagrid可编辑可过滤的DEMO”,这是一个结合了EasyUI DataGrid组件的编辑和过滤功能的示例项目。 首先,DataGrid是EasyUI中的一个核心组件,它是一个数据展示表格,可以处理大量的数据并...

    easyui-datagrid&&easyui-tree实例

    数据表" class="easyui-datagrid"> ``` 2. **数据源配置**: EasyUI datagrid可以通过Ajax获取数据,我们可以使用ASP.NET来处理请求并返回JSON格式的数据。在服务器端,创建一个ASP.NET MVC控制器或WebAPI方法,查询...

    初识通用数据库操作类——前端easyui-datagrid,form(php)

    总的来说,文件描述的这部分内容是对一个简单的数据库操作类进行介绍,并通过一个具体的实例(easyui-datagrid和form表单)演示了前端和后端如何协作完成数据库的基本操作。通过理解这些知识点,开发者能够掌握如何...

    easyui-datagrid官方demo

    easyui-datagrid官方demo,包含datagrid中combobox的使用方法,以及选择行,删除行,编辑行等实现方法。浏览器直接打开html可能无法访问他的data/datagrid_data.json里的数据,可以将datagrid_data.json里的数据放到...

    jquery-easyui-datagrid

    在标题 "jquery-easyui-datagrid" 中,我们关注的是 `datagrid` 这个组件,它是 jQuery EasyUI 库中的一个核心元素。`datagrid` 提供了类似于电子表格的视图,用于展示和操作数据库或其他数据源中的表格数据。 **一...

    ssm easyUI-datagrid增删改查jsp网页

    用于myeclipse软件下ssm框架 easyUIdatagrid增删改查

    dms.rar_easyui java_easyui-datagrid_jeasyui ibatis_jquery-easyui

    标签中的"easyui-java"表示项目使用了EasyUI与Java的结合,"easyui-datagrid"是EasyUI中的一个关键组件,用于展示表格数据。"jeasyui"可能指的是jQuery-EasyUI,它是EasyUI的一个扩展,提供了更多的jQuery插件和组件...

    easyui datagrid 右冻结

    在EasyUI中,"easyui-rtl.css"和"easyui-rtl.js"是用于支持从右到左(RTL)语言布局的文件。"rtl"是“right to left”的缩写,这些文件可能包含了适应RTL布局的样式和脚本,比如对于阿拉伯语或希伯来语等语言,元素...

    easyui-datagrid12-demo.zip

    在“easyui-datagrid12-demo.zip”这个压缩包中,我们主要关注的是EasyUI 的 DataGrid 组件,以及可能涉及到的行内编辑功能。DataGrid 是 EasyUI 提供的一个用于展示数据表格的组件,它具有强大的数据管理能力,包括...

    easyui datagrid标题列宽度自适应

    标题 "easyui datagrid标题列宽度自适应" 涉及到的是JavaScript库EasyUI中的一个功能特性,它主要用于Web应用程序的数据展示。EasyUI是一个基于jQuery的轻量级框架,提供了一系列易于使用的UI组件,包括datagrid,...

    EasyUI-CRUD-DataGrid

    在"EasyUI-CRUD-DataGrid"这个主题中,我们将深入探讨如何使用 EasyUI 的 DataGrid 实现CRUD(Create、Read、Update、Delete)操作。CRUD是数据库管理的基本操作,对于任何数据驱动的应用程序来说都是至关重要的。 ...

Global site tag (gtag.js) - Google Analytics