动态创建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
相关产品推荐
相关产品推荐

