首页 > 代码库 > easyui Datagrid查询报错Uncaught TypeError:Cannot read property 'length' of undefined

easyui Datagrid查询报错Uncaught TypeError:Cannot read property 'length' of undefined

1.问题描述

    easyui中datagrid执行loadData方法出现如下异常:Cannot read property ‘length‘ of undefined

2.一开始怀疑是js或者页面的问题,然后从早上干到下午,网上各种方法用尽了就是不行!

    最后发现规律了:

    使用mybatis从数据库查询返回的List不报错,但是自己new的ArrayList总是报错!

    后来发现原来mybatis返回的不是ArrayList!而是PageList!

3.解决问题

    PageList中有个参数Paginator包含了page(当前页), limit(每页显示条数), totalCount(总记录数),但是ArrayList就没有这个参数了。

    PageList是ArrayList的子类!

    知道了原因,就好办了!把你new的ArrayList改成PageList!代码如下:

    原代码:  

 
  1. List<MsgInfo> list=new ArrayList<MsgInfo>();  

    修改后代码:

 
  1. Paginator paePaginator=new Paginator(page, pageSize, totalCount);  
  2.    List<MsgInfo> list=new PageList<MsgInfo>(paePaginator);  

    然后return list;

4.答题解惑

   可能你用浏览器查看返回的json数据时看不到page(当前页), limit(每页显示条数), totalCount(总记录数)这些信息,但是easyUI能解析到!

   原因可能是因为浏览器任务这些信息类似于请求的头信息一样直接过滤了所以你看不到,但是会返回给easyUI。

原文链接:http://blog.csdn.net/xuxile/article/details/50548285

easyui Datagrid查询报错Uncaught TypeError:Cannot read property 'length' of undefined