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

动态创建jqGrid时无法显示get列页脚合计值,求解决方案

解决jqGrid页脚合计不显示的问题

我帮你排查了代码里的几个关键问题,调整后就能正常显示合计值了:

1. 修正colModel的配置错误

你的列模型里用了ID属性,但jqGrid识别列的核心属性是name,而且存在语法错误(比如引号不匹配、属性名错误)。正确的colModel应该是这样:

colModel: [
    { name: 'ID', type: 'integer', label: 'ID' },
    { name: 'get', type: 'integer', label: '合计列' }
]
  • 用name来指定列的唯一标识(要和数据源里的字段名严格对应)
  • type属性指定列的数据类型,确保数值能被正确解析用于求和计算
  • 加上label可以设置列头显示的文本(可选,但代码更规范)

2. 开启页脚行显示

你需要在jqGrid的初始化参数中添加footerrow: true,否则即使调用了footerData方法,页脚区域也不会被渲染出来:

$("#yourGridId").jqGrid({
    // 其他配置项(比如datatype、data等)...
    footerrow: true, // 必须开启这个参数才会显示页脚行
    loadComplete: function () {
        var $self = $(this);
        // 计算get列的合计值,第四个参数'sum'指定求和逻辑
        var sum = $self.jqGrid("getCol", "get", false, "sum");
        // 设置页脚数据,键名要和colModel里的name对应
        $self.jqGrid("footerData", "set", { ID: '合计', get: sum });
    },
});

3. 确保数据类型解析正确

你的JSON数据源里get字段是数字类型,这部分没问题,但如果后续数据源出现字符串类型的数字,建议在colModel里加上formatter: 'integer'来强制解析为数字:

{ name: 'get', type: 'integer', formatter: 'integer', label: '数值列' }

完整修正后的示例代码

$("#yourGridId").jqGrid({
    datatype: "local",
    data: [
        {ID:'1', get: 15 },
        { ID: '2', get: 585 },
        { ID: '3', get: 585 }
    ],
    colModel: [
        { name: 'ID', type: 'integer', label: 'ID' },
        { name: 'get', type: 'integer', label: '数值列' }
    ],
    footerrow: true,
    loadComplete: function () {
        var $self = $(this);
        var sum = $self.jqGrid("getCol", "get", false, "sum");
        $self.jqGrid("footerData", "set", { ID: '合计', get: sum });
    },
    // 补充必要的基础配置
    rowNum: 10,
    autowidth: true
});

这样调整后,页脚就会正确显示get列的合计值(15+585+585=1185)了。

内容的提问来源于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 07:49:55