如何根据 DevExpress 中的单元格项目更改 gridview 单元格颜色

how to change gridview cell color based on cell item in DevExpress

我的 ASPxGridView 正在从数据库加载大量数据。每次在网格上加载新数据时,我都会根据数据库中的资源将每种 Cellstyle 颜色显示为背景色。

我将在下面尝试阐明我想要实现的目标:

这是我试过的。它正在工作,但所有其他行仍然是System.Drawing.Color.Red.That我不想看到。

protected void ASPxGridViewTicketList_CustomUnboundColumnData(object sender, DevExpress.Web.ASPxGridViewColumnDataEventArgs e)
    {

        if (e.Column.Caption == "Status")
        {

            Object is_priority = e.GetListSourceFieldValue("ispriority");

            if (is_priority.ToString() == "1")
            {
                 e.Column.CellStyle.BackColor = System.Drawing.Color.Red;

            }
            else
            {
                e.Column.CellStyle.BackColor = System.Drawing.Color.AliceBlue;

            }


        }

    }

你有解决办法吗?谢谢!

这是一个插图:

  1. 当条件状态为 if == 1 then RED else White 时,我想一遍又一遍地停止冷却颜色。在此图中,只有 1 行必须为红色 ,其他行必须为白色。但它不起作用。

我认为您试图在错误的地方更改背景颜色。 CustomUnboundColumnData 是更多与数据相关的事件。当你打电话给

e.Column.CellStyle.BackColor = System.Drawing.Color.Red;

在 CustomUnboundColumnData 期间,它为整列设置背景色,即所有状态单元格。

要为特定的未绑定单元格设置背景颜色,您需要处理特定于单元格的 'paint' 事件,例如 HtmlDataCellPrepared or row-specific event like HtmlRowCreated

对于 HtmlDataCellPrepared 示例,请参阅此 post:https://www.devexpress.com/Support/Center/Question/Details/Q308988。这个例子应该很简单。您根据 e.DataColumn.FieldName 检查所需的列,并在 e.CellValue 中检查所需的列值,然后您可以确定是否将该行涂成红色。

我相信您将能够自己为上述事件添加处理程序。

HTH