【问题标题】:jQGrid - Change background color of grouping headerjQGrid - 更改分组标题的背景颜色
【发布时间】:2013-11-19 10:21:47
【问题描述】:

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

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

这是我对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" };
    }
},

这是我当前网格的截图:

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

这可能吗?

【问题讨论】:

    标签: jquery jqgrid colors


    【解决方案1】:

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

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

    对应的代码如下:

    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);
            }
        }
    }
    

    【讨论】:

    • 太棒了!感谢一百万奥列格!
    • @FastTrack:不客气!如果我在接下来的几天里找到时间,我将发布我的建议如何更改 jqGrid 的groupingRender 方法的代码以允许将rowattr 应用于分组标题。
    • 那太好了!我相信这是大多数人都希望拥有的功能。
    猜你喜欢
    • 2014-12-12
    • 1970-01-01
    • 1970-01-01
    • 2013-01-03
    • 2015-07-26
    • 2010-11-19
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多