根据单元格值为dgrid单元着色

color dgrid cell based on cell value

本文关键字:单元 dgrid 单元格      更新时间:2023-09-26

我有一个dgrid,我试图设置基于单元格的值使用formatter函数和css的单元格背景颜色。dgrid位于ID为UnMarkedTicketGridDiv

的div中。

formatter function:

formatPriority: function (item) {
            return = "<td class='" + item + "'>" + item + "</td>";
        },
css:

#UnMarkedTicketGridDiv td.NORM
{
    background-color:Green;
    color:Green;
}

知道为什么细胞没有变绿吗?我已经验证了正在调用格式化器函数,并且有一个名为"NORM"的项,因此正在定义这个类。我觉得是css选择器的问题?

下面是网格列的定义:

grid = new (declare([OnDemandGrid, DijitRegistry]))({
                store: gridStore,
                columns: {
                    ID: "ID",
                    Ticket: "Ticket",
                    Street: "Address",
                    DateRcvdInt: { label: "Date Rcvd", formatter: this.formatDate },
                    WorkDateInt: { label: "Work Date", formatter: this.formatDate },
                    Priority: { label: "Priority", formatter: this.formatPriority },
                    Type: "Type",
                    Company: "Company"
                }

谢谢

一般来说,最简单的方法是使用renderCell,它使您可以直接访问单元格:

Priority: {
    label: "Priority",
    renderCell: function (object, value, cell) {
        cell.className += " " + value;
        return document.createTextNode(value);
    }
}

注意,renderCell可以返回要放置在单元内的节点。我使用createTextNode而不是仅仅设置innerHTML,因为后者可能容易受到来自数据源的HTML注入的影响。