3

我正在使用 jQGrid 进行分组。每个组标题将具有以下三种可能性之一:PendingDuplicateNot Duplicate

基于该文本,我想更改分组标题的背景颜色。我已经在使用rowattrjQGrid 的属性来更改网格行的背景颜色,但我不知道如何更改分组标题颜色。

这是我的实现rowattr,我认为它应该类似于分组标题背景颜色:

gridview: true,
rowattr: function (rd) {
    alert(rd.duplicateStatusName);
    if (rd.duplicateStatusName === "Pending Review") {
        return { "class": "css_trStatusBackground_pending" };
    }
    else if (rd.duplicateStatusName === "Duplicate") {
        return { "class": "css_trStatusBackground_dup" };
    }
    else if (rd.duplicateStatusName === "Not a duplicate") {
        return { "class": "css_trStatusBackground_notdup" };
    }
},

这是我当前网格的屏幕截图:

在此处输入图像描述

我希望深灰色标题颜色是基于标题中的文本的不同颜色(类似于我的行颜色)。

这可能吗?

4

1 回答 1

6

groupingRender不允许使用某种rowattr样式来设置分组标题的当前实现。所以你必须遍历组groupingView.groups,测试value并手动添加 css 类loadComplete

该演示演示了该方法的可能实现:

在此处输入图像描述

相应的代码可能如下:

grouping: true,
groupingView: {
    groupField: ["name"], // column name by which we group
    groupColumnShow: [true],
    groupCollapse: true
},
rowattr: function (rd) {
    switch (rd.name) {
    case "test1":
        return { "class": "class1" };
    case "test2":
        return { "class": "class2" };
    case "test3":
        return { "class": "class3" };
    default:
        return {};
    }
},
loadComplete: function () {
    var i, group, cssClass, headerIdPrefix = this.id + "ghead_",
        groups = $(this).jqGrid("getGridParam", "groupingView").groups,
        l = groups.length;
    for (i = 0; i < l; i++) {
        group = groups[i];
        switch (group.value) {
        case "test1":
            cssClass = "class1";
            break;
        case "test2":
            cssClass = "class2";
            break;
        case "test3":
            cssClass = "class3";
            break;
        default:
            cssClass = "";
            break;
        }
        // listghead_0_1
        if (cssClass !== "") {
            $("#" + headerIdPrefix + group.idx + "_" + i).addClass(cssClass);
        }
    }
}
于 2013-11-11T10:08:18.630 回答