最近在使用EasyUI DataGrid来作前端的报表开发,遇到了这个报错:javascript
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,如下是一个局部的配置代码:java
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给到了整数类型,可是依然仍是报了错误:git
Uncaught TypeError: Cannot set property '0' of undefined
复制代码
这个真让我以为奇怪了,另一个错误,而后还没能在网上找到解决办法。可是心想确定仍是rowspan那个地方有问题,就慢慢的尝试修改它的值类型,都无果,后面索性干掉rowspan算了,由于反正也解决不了,而后复杂表头那个地方就将就着吧,谁能想到,去掉rowspan后,没报错,而后也正常的合并了2格,这是真的神奇。 因而可知,EasyUI的冻结列不须要配置合并单元格的状况,框架本身会处理。同时不只要吐槽一下这个插件,界面不只古老,插件的错误处理也很不科学。github
本篇文章由一文多发平台ArtiPub自动发布bash