jqgrid addRowData报错
程序员文章站
2022-11-08 09:29:34
今天再写项目的时候, 有一个手动添加行的功能,使用的是jqgrid的addRowData方法添加数据。但是在我们切换标签页的时候,再次添加行,调用这个方法的时候,报错了。错误信息如下 然后经过自己的反复测试发现是这样的,当我们切换到第二个标签页的时候,页面上是没有数据的,调用addRowData的方 ......
今天再写项目的时候, 有一个手动添加行的功能,使用的是jqgrid的addrowdata方法添加数据。但是在我们切换标签页的时候,再次添加行,调用这个方法的时候,报错了。错误信息如下
然后经过自己的反复测试发现是这样的,当我们切换到第二个标签页的时候,页面上是没有数据的,调用addrowdata的方法报错。但是我们切换回第一个标签页的时候,页面是有原来的测试假数据的,调用addrowdata是没有报错了。所以可能就是数据的问题。我们添加数据使用的是本地 请求ajax,然后使用datatype:local的方法赋值的。也就是下面的代码
1 $("#table_list_1").jqgrid("cleargriddata"); 2 $("#table_list_1").jqgrid('setgridparam', { 3 data:all_data, 4 datatype: "local", 5 }).trigger("reloadgrid");
代码当中,当我们是没有数据的时候,我们直接给all_data赋值一个空数组。所以解决办法也就很简单了。我们首先判断all_data是不是有数据,如果没有数据的话,只调用第一行的cleargriddata方法。具体代码请看:
1 if(all_data.length){ 2 $("#table_list_1").jqgrid("cleargriddata"); 3 $("#table_list_1").jqgrid('setgridparam', { 4 data:all_data, 5 datatype: "local", 6 }).trigger("reloadgrid"); 7 }else{ 8 $("#table_list_1").jqgrid("cleargriddata"); 9 }
然后我们调用addrowdata方法,添加数据,就不会出现上面的报错了。
总结:其实这次的错误是和上一篇百度富文本编辑器报错的文章一样,就是因为当我们再次使用实例化的时候,没有清空或者说销毁原来的实例,导致的报错。这样的错误,应该避免。
推荐阅读
-
Linux连接mysql报错:Access denied for user ‘root’@‘localhost’(using password: YES)的解决
-
ThinkPad FN+F5无线热键报错解决方法
-
联想thinkpadt410 开机失败报错fan error怎么办?
-
Android Studio启动报错Java 1.8 or later is required的解决方法
-
DB2-407报错中如何快速定位问题SQLCODE:-407,SQLSTATE:23502
-
PHP 正则匹配h1的数据报错 preg_match(): Unknown modifier 'h' in
-
Python代码报错看不懂?记住这20个报错提示单词轻松解决bug
-
关于Cookie中带有中文乱码报错的问题解决
-
基于Postman中的报错
-
java编译报错 错误: 编码GBK的不可映射字符