easyui框架datagrid的load不刷新数据


easyui框架datagrid的load不刷新数据

感谢一波

最近喜欢看博客,特别是遇到问题时候通过搜索学习别人的经验解决问题,能体验到无穷的乐趣。长时间的摸索找到一个bug,并记录下帮助他人警示自己是一件快乐的事。一直希望有一个自己的平台,在看博客中,发现了很多很多的知识,更觉得自己就如一粒大海仓粟,学习中遇到了很多故事和人(博客,文章中认识),改变了我的生活态度,因为帮助太多了随后会陆续介绍。

  必须要提的是我的博客启蒙人@zhisheng(博主),交流知即将进入一家bat公司,为老兄加油,也希望自己能一直坚持下去,分享学到的知识,互相交流。

  博客是一个很好的交流形式,可以增加阅历,生活,知识的广度和深度,非常适合猿们的这个勤奋行业。感谢给我带来帮助的优秀博客,越发觉得知识的累积需要记录,当本地笔记越来越多的时候,这种web端的记录形式就很方便了。♥♡♬☺(✿ฺ´∀`✿ฺ)嘹杂了…

进入正题

对于easyui框架,datagrid是使用最多的控件,是创建数据网格时使用的插件

  在jsp页面中,当通过触发想要刷新页面数据时候,可以通过以下方法实现,
这三种方法都可做加载数据用。

datagrid中的load、reload、loadDate区别:

$(“#grid”).datagrid(“load”,{ });

  load方法,比如我定义的一个datagrid,它的id为grid。参数为一个json对象,里面写的是你要传输的参数的键值对,调用这个方法来加载数据的时候,它传给后台的分页信息是从第一页开始的。

$(“#grid”).datagrid(“reload”,{ });

  reload方法,使用方式也跟load的一样,看它的名字应该就可以知道它的做用了,没错,它跟load一样有加载数据功能,也一样的传参数,但它传给后台的分布信息是当前的页码,就是实现刷新当前页的功能。

$(“#grid”).datagrid(“loadData”,{ “total”:”30″,rows:[] });

  loadData方法,这个方法有比较大的不同,首先它加载的本地数据,就是不会跟后台什么的有交互,它是比较灵活的,可以设置分页信息的,total就是行数,当然你也可以设置它的当前页,而它那个rows属性设的就是你所要加载的行的集合。
  网上也有很datagrid不能刷新数据的很多多情况,可以自行百度,本文解决的是一种情况。
  出错的时候可能会以为是代码的错误,反复查找后台代码是否有书写错误或者逻辑错误,其实应该先去看返回的数据是否正确,为什么页面没有出来。这也是发现问题并快速找到问题并解决的一种方法。顺藤摸瓜,从问题出现的地方为起点,去寻找最可能的原因。
  推荐使用json在线解析工具,在网页调试模式下获取返回的json数据,通过解析会发现json格式报错,但是有时候检查的时候是后台不会报错的,所以最好还是把返回数据在线解析,可以快速找到错误地方:

...          "REMARK": "6228483476097410764
-----------------------^
Expecting 'STRING', 'NUMBER', 'NULL', 'TRUE', 'FALSE', '{', '['`


首先检查json数据是否符合规范,是否引入了特殊字符导致json解析失败。比如这种情况:

{
	"name": "xioaming",
    "createDate": "2017-11-01 09:09:05",
    "ID": "6e37fe67-108s-466c-sc16-274eddc4e7ad",
    "REMARK": "6228483476097410764 	",
    "STATUS": "0"
}

看上去好像并没有什么错误,一个很简单的json数据,但是会发现REMARK属性的值后面有空白,string类型存在空白很正常啊,但是当复制这个空白区域的时候,会瞬间明白其实是一个制表符,也就是键盘上的tab键,而这是不允许的,除非在字符串中使用转译,它是特殊字符,需要处理。可以通过这个去了解json特殊字符语法
  JSON文本是一个标记符的序列。这套标记符包含六个构造字符、字符串、数字和三个实字名。也是一个串行化的对象或数组。
  JSON-text = object / array
以下是六个构造字符:
  begin-array = ws %x5B ws ; [ 左方括号
  begin-object = ws %x7B ws ; { 左大括号
  end-array = ws %x5D ws ; ] 右方括号
  end-object = ws %x7D ws ; } 右大括号
  name-separator = ws %x3A ws ; : 冒号
  value-separator = ws %x2C ws ; , 逗号
在这六个构造字符的前或后允许存在无意义的空白符。

ws = *(
  %x20 /; 空格符
  %x09 /; 水平制表符
  %x0A /; 换行符
  %x0D /; 回车符
)

总结

所以当通过表单验证有时会给数据库插入tab等特殊字符,作为客户对于数据不了解的情况下,很容易发生错误,需要我们在代码上进行处理,加入验证或者给用户提供更友好的提示,不仅可以增加用户的体验性,也能对我们代码的稳定性有一定帮助(降低产品部门频繁提出bug,减少不必要的加班,哈哈)。

好嘞,先写到这把,附上一张美图,下班下班




    希望能帮到遇到问题的童鞋,欢迎批评指正。

最后

本文首发于:Xinjiang的博客
地址为:http://www.lixinjiang.cn/2017/11/01/easyui-problem/转载请注明出处!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值