【问题标题】:How to set cell color based on another cell value?如何根据另一个单元格值设置单元格颜色?
【发布时间】:2014-06-11 02:19:08
【问题描述】:

在 MVC Razor gridPanel 中,如何使用另一个单元格值设置单元格颜色? 在同一个单元格中,我可以使用调用 javascript 函数的渲染器选项来设置单元格颜色,如下所示:

Html.X().Column().Text("Cell_1").DataIndex("cell_1_value").Renderer("change"),
Html.X().Column().Text("Cell_2").DataIndex("cell_2_value")

javaScript 函数是:

var change = function (value) {
            return Ext.String.format(template, (value > 2) ? "green" : "red", value);
        };

有没有办法根据“cell_2_value”设置“Cell1”颜色? 请注意,Cell2 属于另一列。

【问题讨论】:

  • 您可以向您的对象添加一个属性来计算单元格颜色。您基本上是在遍历对象列表并使它们成为行吗?
  • @AdmiralAdama 是的,我正在迭代包含对象列表的模型。关于颜色的信息在“cell_2_value”中,那么我为什么要添加另一个属性?即使有另一个属性,我如何在我的代码中使用它?
  • 你说的是服务器端吗?还是客户端?
  • @AdmiralAdama 客户端

标签: javascript asp.net-mvc


【解决方案1】:

也许您可以使用 JavaScript 获取单元格 2 的背景颜色,然后触发以下 JavaScript 函数?请记住将 cell_1_id 替换为适当的 id。

function change_background(cell_2_colour) {
    document.getElementById("cell_1_id").style.backgroundColor=cell_2_colour;
}

希望对你有帮助

西蒙。

【讨论】:

  • 如何在我的代码中调用这个函数?以及如何传递参数?
【解决方案2】:

试试这个:

<!DOCTYPE HTML>
<html>
    <head>
        <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
        <title>Script Test</title>
    </head>
    <body>
        <div id="cell_1"><h1>Cell 1</h1></div>
        <div id="cell_2" style="background-color:orange;"><h1>Cell 2</h1></div>
        <script>
            document.getElementById("cell_1").style.backgroundColor=cell_2_colour=document.getElementById("cell_2").style.backgroundColor;
        </script>
    </body>
</html>

我希望这会有所帮助...

西蒙。

【讨论】: