javascript - ag-grid 渲染具有背景颜色的行

标签 javascript angularjs ag-grid

我目前正在使用 Angular 和 ag-grid 来显示一个包含各种数据的表格,该数据中的一列将包含值“失败”或“通过”。

我目前正在研究在检测到失败时将行背景渲染为红色的能力。

我遇到的问题是我找不到此代码的任何示例。

我推断我可以做很多事情,特别是在 api 中使用多个回调来执行这样的功能。但作为 Web 开发领域(至少是前端)的新手,我发现如何使用这些回调的确切内容难以捉摸。

好吧,我有以下已知方法:

1)

gridOptions.getRowStyle(params) {
    if (params.data.myColumnToCheck === myValueToCheck) {
        return {'background-color': 'yellow'}
    }
    return null;
}

2) processRowPostCreate 回调 - 没有已知代码

3)这就是我目前所拥有的,并且来 self 的头脑 - 但它是丑陋的代码,并且在工作时我确信它比我看到的实际建议更昂贵和更差。

vm.toggleColour = function () {
    vm.state.colour = !vm.state.colour;
    if (vm.state.colour) {
        columnDefs = [
            { headerName: "S", field: "1", width: 210, sort: "asc", cellStyle: changeRowColor },
            { headerName: "TS", field: "2", width: 170, cellStyle: changeRowColor },
            { headerName: "TC", field: "3", width: 195, sort: "asc", cellStyle: changeRowColor },
            { headerName: "H", field: "4", width: 60, cellStyle: changeRowColor },
            { headerName: "TV", field: "5", width: 85, cellStyle: changeRowColor },
            { headerName: "Verdict", field: "6", width: 60, cellStyle: changeRowColor },
            { headerName: "Message", field: "Message", width: 85, cellStyle: changeRowColor },
            { headerName: "Timestamp", field: "Timestamp", width: 175, cellStyle: changeRowColor },
            { headerName: "Audit Num", field: "AuditNum", width: 95, cellStyle: changeRowColor },
            { headerName: "Fail Reasons", field: "Reasons", width: 1430, cellStyle: changeRowColor }
        ];
    }
    else {
        columnDefs = [
            { headerName: "S", field: "1", width: 210, sort: "asc" },
            { headerName: "TS", field: "2", width: 170 },
            { headerName: "TC", field: "3", width: 195, sort: "asc" },
            { headerName: "H", field: "4", width: 60 },
            { headerName: "TV", field: "5", width: 85 },
            { headerName: "Verdict", field: "6", width: 60 },
            { headerName: "Message", field: "Message", width: 85 },
            { headerName: "Timestamp", field: "Timestamp", width: 175 },
            { headerName: "Audit Num", field: "AuditNum", width: 95 },
            { headerName: "Fail Reasons", field: "Reasons", width: 1430 }
        ];
    }
    resizeColumns();
    vm.gridOptions.api.setColumnDefs(columnDefs);
};
function changeRowColor(params) {
    if (params.node.data.FinalVerdict === 'Fail') {
        return { 'background-color': '#red' };
    }
}

有谁知道如何做我想做的事情,而不需要像我现在这样编写一些非常可怕的代码?

我应该说,我更希望能够向行注入(inject)一个类,并在可能的情况下让 css 设置它的样式 - 关于如何做到这一点有什么想法吗?重新绘制网格真是太痛苦了!

谢谢大家

最佳答案

尝试以下操作。

getRowStyle回调连接到函数changeRowColor
将以下行添加到您的 gridOptions 对象中。

getRowStyle:changeRowColor

然后根据需要定义changeRowColor函数
例如

gridOptions={
  columnDefs: blah,
  rowData: blah,
  ...
  getRowStyle:changeRowColor
}

function changeRowColor(params) {
    if (params.data.FinalVerdict === 'Fail') {
        return { 'background-color': '#red' };
    }
}

干杯

关于javascript - ag-grid 渲染具有背景颜色的行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37745892/

相关文章:

javascript - 获取数组中的差异

javascript - 如何在选择 TR 时向 TR 中的每个 TD 添加类

javascript - 如何在javascript中获取编码数据

javascript - 有没有办法在服务器端模型 ag-grid 中实现快速过滤?

javascript - 如何知道/捕获您所在的特定详细信息网格的详细信息网格 ID? (ag-grid javascript)

ag-grid - 未找到 agGroupCellRenderer

java - JavaScript 版本

javascript - 如何在 AngularJS v1.3.3 中使用路由和 ng-view

javascript - 有没有办法防止整个 AngularJS Web 应用程序中的退格导航?

javascript - 如何将 ng-min 或 ng-pattern 与 ng-required 一起使用?