You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用jqGrid reloadGrid加载本地JSON时数据为空/无法填充问题

解决jqGrid reloadGrid加载本地JSON数据为空的问题

我来帮你排查下这个问题~首先看你的代码,其实存在几个可以调整的地方,咱们一步步来:

1. 去掉冗余的数据转换步骤

你的objstr本身就是一个包含数据对象的数组,完全不需要再用Object.keys(objstr).map(...)去生成col数组——这一步不仅多余,反而可能导致数据结构出问题(因为Object.keys遍历数组得到的是索引字符串,map后其实和原数组一样,但完全没必要多此一举)。

2. 确保colModel与数据字段严格匹配

这是最容易踩坑的点:jqGrid的colModel里的name属性必须和你JSON数据里的字段名大小写完全一致。比如你的数据里是id、Name、PackageCode、get,那colModel里对应的name就得是"id"、"Name"、"PackageCode"、"get",不能写成小写的"name"或者"packagecode",否则表格无法匹配到数据。

3. 优化reloadGrid的调用逻辑

调整setGridParam和trigger的顺序,同时加上分页重置参数,确保数据能正确渲染:

修正后的代码示例:

function FillGrid() {
    // 直接使用原数组,不需要额外转换
    var objstr = [
        { id: "12", Name: "Name 41", PackageCode: "8443123a", get: 315 }, 
        { id: "22", Name: "Name 12", PackageCode: "8314423a", get: 585 }, 
        { id: "32", Name: "Name 12", PackageCode: "8314423a", get: 56485 } 
    ];
    
    // 先设置data和datatype,再触发reloadGrid并重置到第一页
    $("#jqg1")
        .setGridParam({ 
            data: objstr, 
            datatype: 'local' 
        })
        .trigger('reloadGrid', { page: 1 }); // 重置到第一页,避免分页导致数据不显示
}

额外检查点

  • 确保调用FillGrid时,jqGrid已经完成初始化(比如不要在DOM加载完成前调用)
  • 如果你的表格开启了分页,要确认rowNum设置的值大于0,且数据条数符合分页逻辑
  • 检查浏览器控制台是否有报错,比如colModel配置错误、表格ID不存在等问题

内容的提问来源于stack exchange,提问作者user2049855

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.15 04:33:55