如何在JQGrid自定义格式化器中获取另一列的值?
解决JQGrid自定义格式化器依赖另一列值的问题
我帮你看看这个问题~你之前的代码里有个关键错误:options.colModel[12]取的是第13列的配置信息(比如列名、宽度这些),而不是该行该列的实际单元格值,所以逻辑肯定不生效。
JQGrid的格式化器函数里,rowObject参数其实就是当前行的完整数据,你可以直接通过它获取其他列的值,具体分两种情况:
情况1:数据是对象形式(推荐,比如远程JSON返回的结构)
如果你的表格数据是JSON对象数组(每个行是一个对象,键对应列的name属性),直接通过对象属性名获取另一列的值:
function profileConsentFmatter(cellvalue, options, rowObject) { // 把这里的"userRole"换成你实际用来判断的列的name属性值 const userRole = rowObject.userRole; if (userRole === "CORPADMIN") { return "Company Admin"; } else if (cellvalue === "true") { return "Yes"; } else { return "Pre GDPR"; } }
情况2:数据是数组形式(本地二维数组数据)
如果你的表格数据是二维数组(每个行是一个数组,元素顺序对应列的顺序),就通过数组索引获取另一列的值(注意索引从0开始,第13列对应索引12):
function profileConsentFmatter(cellvalue, options, rowObject) { // 这里的12是你要依赖的列的索引(从0开始计数) const userRole = rowObject[12]; if (userRole === "CORPADMIN") { return "Company Admin"; } else if (cellvalue === "true") { return "Yes"; } else { return "Pre GDPR"; } }
额外提醒
- 确保你依赖的列在
colModel中已经正确配置,并且数据确实包含该列的值; - 如果是远程加载数据,要确认返回的JSON结构和你使用的属性名/索引对应一致。
内容的提问来源于stack exchange,提问作者maahd
相关产品推荐
相关产品推荐

