最近在使用EasyUI DataGrid来做前端的报表开发,遇到了这个报错:

Uncaught TypeError: Cannot read property 'width' of null

在网上查找解决方案,基本上都告诉你检查各种属性名是否有拼写的错误,一般都是这个原因导致的。我自己也做了检查,并没有发现什么问题,以下是我的代码:

columns: [
[
{ align: 'center', colspan: "4", title: "支付宝" },
{ align: 'center', colspan: "4", title: "微信-APP" },
{ align: 'center', colspan: "4", title: "微信-公众号" },
{ align: 'center', colspan: "4", title: "建行" },
{ align: 'center', colspan: "4", title: "银联" },
{ field: 'incomeCount_total', align: 'center', rowspan: 2, title: "合计收入笔数" },
{ field: 'income_total', align: 'center', rowspan: 2, title: "合计收入金额" },
{ field: 'payCount_total', align: 'center', rowspan: 2, title: "合计支出笔数" },
{ field: 'pay_total', align: 'center', rowspan: 2, title: "合计支出金额" }
]
]

查找了很多的解决办法,依然没找出问题所在,后面自己想着有没有可能是colspan的值不应该是字符串类型,因为想到报的是width的问题,然后自己就尝试将"4"修改为4,果然没报错了。这真的很让人无语,因为自己用过的table插件里面,LayUI以及JqGrid等,都没有强制要求这些方面,同时这个报错并未指向具体的原因,所以会让很多人摸不着头脑,我自己也是比较幸运,才能找到问题的所在。   不过,这还没完,因为我有冻结列,所以要添加冻结列的配置,然后我有复杂表头,因此有rowspan,以下是一个局部的配置代码:

frozenColumns: [[
{ field: 'reason', align: 'center', "rowspan": 2, title: "业务类型" }
]],
columns: [
[
{ align: 'center', colspan: 4, title: "支付宝" },
{ align: 'center', colspan: 4, title: "微信-APP" },
{ align: 'center', colspan: 4, title: "微信-公众号" },
{ align: 'center', colspan: 4, title: "建行" },
{ align: 'center', colspan: 4, title: "银联" },
{ field: 'incomeCount_total', align: 'center', rowspan: 2, title: "合计收入笔数" },
{ field: 'income_total', align: 'center', rowspan: 2, title: "合计收入金额" },
{ field: 'payCount_total', align: 'center', rowspan: 2, title: "合计支出笔数" },
{ field: 'pay_total', align: 'center', rowspan: 2, title: "合计支出金额" }
]
]

我吸取教训,冻结列的rowspan给到了整数类型,但是依然还是报了错误:

Uncaught TypeError: Cannot set property '0' of undefined

这个真让我觉得奇怪了,另外一个错误,然后还没能在网上找到解决办法。但是心想肯定还是rowspan那个地方有问题,就慢慢的尝试修改它的值类型,都无果,后面索性干掉rowspan算了,因为反正也解决不了,然后复杂表头那个地方就将就着吧,谁能想到,去掉rowspan后,没报错,然后也正常的合并了2格,这是真的神奇。 由此可见,EasyUI的冻结列不需要配置合并单元格的情况,框架自己会处理。同时不仅要吐槽一下这个插件,界面不仅古老,插件的错误处理也很不科学。

EasyUI:Cannot read property 'width' of null的更多相关文章

  1. jquery easyui datagrid 空白条处理 自适应宽高 格式化函数formmater 初始化时会报错 cannot read property 'width'||'length' of null|undefined

    1---表格定义好之后右侧可能会有一个空白条 这个空白条是留给滚动条的,当表格中的一页的数据在页面中不能全显示时会自动出现滚动条,网上有很多事要改源码才可以修改这个,但是当项目中多处用到时,有的需要滚 ...

  2. 百度ueditor 实例化 Cannot set property 'innerHTML' of null 完美解决方案

    此时此刻,我正在用博客园推荐的TinyMCE编辑器写这个博客,突然想起最近在项目中使用百度ueditor编辑器中的一些经历.所以记录在此,与大家分享. 不得不说,百度ueditor是一款很好的在线编辑 ...

  3. Extjs4---Cannot read property 'addCls' of null

    用MVC做后台管理系统时遇到的问题,关于tab关闭后再打开不显示,或者报错 我在新的tabpanel中加入了一个grid,当我关闭再次打开就会报错Cannot read property 'addCl ...

  4. extjs Cannot read property 'dom' of null

    如果你的EXTJS报错: Cannot read property 'dom' of null,那就有可能是因为你的HTML或者JSP文件中的BODY标签里面少了个东西比如代码是: <html& ...

  5. Extjs4---Cannot read property 'addCls' of null - heirenheiren的专栏 - 博客频道 - CSDN.NET

    body { font-family: 微软雅黑,"Microsoft YaHei", Georgia,Helvetica,Arial,sans-serif,宋体, PMingLi ...

  6. vue-cli +echarts-amap集成echarts和高德地图TypeError: Cannot read property 'dataToPoint' of null解决方案

    由于项目的需求,需要做一种迁徙效果, 最后我们采用了组件化开发,可以说这个坑自己一个人踩,有点累,但也收获不少. vue-cli +echarts-amap集成echarts和高德地图,出现报错,错误 ...

  7. Extjs4---Cannot read property 'addCls' of null 或者 el is null 关于tab关闭后再打开不显示或者报错

    做后台管理系统时遇到的问题,关于tab关闭后再打开不显示,或者报错 我在新的tabpanel中加入了一个grid,当我关闭再次打开就会报错Cannot read property 'addCls' o ...

  8. Cannot read property 'nodeType' of null; audio元素默认样式下载按钮

    1.chrome-->console抛出如下错误: Uncaught TypeError: Cannot read property 'nodeType' of null 错误原因:从stack ...

  9. Uncaught TypeError: Cannot set property 'onclick' of null解决办法

    如果把js内容直接放在这个head标签以内,button按钮不能正常点击更换body的背景颜色,报错提示:demo6.html:16 Uncaught TypeError: Cannot set pr ...

随机推荐

  1. 使用OFBIZ的理由和不使用OFBIZ的理由

    1 使用OFBIZ的理由 1.1 什么是OFBIZ OFBIZ是由Sourceforge维护的一个最著名的开源项目之一,提供创建基于最新J2EE/XML规范和技术标准,构建大型企业级.跨平台.跨数据库 ...

  2. ECarts 的初步使用

    ECharts,一个使用 JavaScript 实现的开源可视化库,可以流畅的运行在 PC 和移动设备上,兼容当前绝大部分浏览器(IE8/9/10/11,Chrome,Firefox,Safari等) ...

  3. MongoDB的使用学习之(三)安装MongoDB以及一些基础操作

    原文链接:http://www.cnblogs.com/huangxincheng/archive/2012/02/18/2356595.html 此博主的 8天学通MongoDB 系列还是不错的,本 ...

  4. MFC消息详解 (WindowProc|OnCommand|OnNotify)

    1. 怎样使用MFC发送一个消息用MFC发送一个消息的方法是, 首先,应获取接收消息的CWnd类对象的指针: 然后,调用CWnd的成员函数SendMessage( ). LRESULT Res=pWn ...

  5. Python日志库logging总结

    转自  https://cloud.tencent.com/developer/article/1354396 在部署项目时,不可能直接将所有的信息都输出到控制台中,我们可以将这些信息记录到日志文件中 ...

  6. flask之url_for函数

    一:url_for函数 干什么的?传入函数名,得到函数的路由地址(访问视图函数的地址) from flask import Flask from flask import url_for app = ...

  7. 6.dockerfile

    一.概述 自制镜像的目的不是为了解决配置更新的问题,而是为了定制化应用服务. 镜像的制作:基于容器制作:dockerfile dockerfile的格式:注释信息+指令(约定俗成使用大写)及其参数 d ...

  8. 探讨vue的双向绑定原理及实现

    1.vue的实现原理 vue的双向绑定是由数据劫持结合发布者-订阅者模式实现的,那么什么是数据劫持?vue是如何进行数据劫持的?说白了就是通过Object.defineProperty()来劫持对象属 ...

  9. Selenium-Switch与SelectApi介绍

    Switch 我们在UI自动化测试时,总会出现新建一个tab页面,弹出一个浏览器级别的弹框或者是出现一个iframe标签,这时我们用WebDriver提供的Api接口就无法处理这些情况了.需要用到Se ...

  10. Android之SAX解析笔记

    books.xml: <?xml version="1.0" encoding="utf-8"?> <books> <book i ...