• jqgrid 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方法,添加数据,就不会出现上面的报错了。

    总结:其实这次的错误是和上一篇百度富文本编辑器报错的文章一样,就是因为当我们再次使用实例化的时候,没有清空或者说销毁原来的实例,导致的报错。这样的错误,应该避免。

  • 相关阅读:
    JS使用readAsDataURL读取图像文件
    python20个骚操作
    HTML标签的for属性
    进程、线程、协程理解
    mysql 深度解析auto-increment自增列"Duliplicate key"问题
    2020年MySQL数据库面试题总结(50道题含答案解析)
    如何用Redis统计独立用户访问量
    Redis中的布隆过滤器及其应用
    redis系列教程以及面试题
    大厂面试爱问的「调度算法」,20 张图一举拿下
  • 原文地址:https://www.cnblogs.com/daniao11417/p/11825518.html
Copyright © 2020-2023  润新知