gpt4 book ai didi

jquery - 如何从 jqGrid 列获取单元格值以对背景色进行条件格式设置

转载 作者:行者123 更新时间:2023-12-01 01:27:44 25 4
gpt4 key购买 nike

我正在使用 jqGrid 树网格,我想根据单元格中数据的值(它是一个整数)来格式化列的背景颜色:

这是我设置列的示例:

             {
name: 'missingBooks',
cellattr: function (rowId, tv, rawObject, cm, rdata) {

//conditional formatting
if (rawObject[11] > 0) {
return 'style="background-color:#FFCCCC"';
}
},
width: 75,
unformat: originalValueUnFormatter,
formatter: missingBooksFormatter,
align: "right",
index: 'missingBooks',
hidden: false,
sorttype: 'int',
sortable: true
},

这工作正常,但我的问题出在 cellAttr 回调中。在此条件格式行中:

      if (rawObject[11] > 0) {
return 'style="background-color:#FFCCCC"';
}

我想重用这个逻辑,所以我不想索引到 rawObject 并找出我正在使用的列。我希望有一种方法可以做这样的事情:

       if (rawObject.missingBooks > 0) {
return 'style="background-color:#FFCCCC"';
}

但这似乎是未定义的。这样,如果我添加新列,我就不必重新索引所有这些条件格式代码。

最佳答案

我明白这个问题了。我建议 Tony 对 jqGrid 代码进行一些更改。大多数情况下修改 the place 就足够了在代码中填充第一个 rd,然后在下一个 for 循环中调用 addCell,并将 rd 作为附加参数。函数 addCell 可以将信息转发给 formatCol,而 formatCol 可以使用附加参数 rd 调用 cellattr 其中的信息格式与您想要的格式完全相同。

尽管如此,无需对 jqGrid 代码进行任何更改,就可以相对轻松地获得几乎与您所需相同的结果。要做到这一点,只需构造一个 map 对象,它可以根据名称为我们提供 rawObject 中列的索引。

例如,如果 map 尚未填充,我们可以使用 beforeRequestbeforeProcessing 来填充 map 。代码看起来像

var colMap = {};
$("#tree").jqGrid({
...
colModel: [
{name: 'missingBooks',
cellattr: function (rowId, tv, rawObject, cm, rdata) {
//conditional formatting
if (Number(rawObject[colMap.missingBooks]) > 0) {
return ' style="background-color:#FFCCCC"';
} else {
return '';
}
}
...
],
beforeRequest: function () {
if ($.isEmptyObject(colMap)) {
var i, cmi,
cm = $(this).jqGrid('getGridParam', 'colModel'),
l = cm.length;
for (i = 0; i < l; i++) {
cmi = cm[i];
colMap[cmi.name] = i;
}
}
}
});

因此,代码将不再使用像 rawObject[11] 这样的索引,其中索引 11 可以在代码中进行一些修改后更改。

可以查看对应的demo here .

关于jquery - 如何从 jqGrid 列获取单元格值以对背景色进行条件格式设置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8770549/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com