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

时间:2016-12-05 10:48:51

标签: c# datagridview devexpress aspxgridview

我的ASPxGridView正在从数据库加载海量数据。每次网格上都有新的数据加载时,我会根据数据库中的资源为每个Cellstyle颜色显示BackColor。

我将尝试澄清我想在下面实现:

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

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. 我想一次又一次地停止颜色的冷却,同时有条件状态,如果== 1则RED否则为White。在此图示中,只有 1行必须为红色,其他行为白色。但它没有用。
  2. enter image description here

1 个答案:

答案 0 :(得分:1)

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

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

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

要设置特定未绑定单元格的背景颜色,您需要处理特定于单元格的绘制'像HtmlDataCellPrepared这样的事件或像HtmlRowCreated这样的行特定事件。

对于HtmlDataCellPrepared示例,请参阅此帖子:https://www.devexpress.com/Support/Center/Question/Details/Q308988。这个例子应该是直截了当的。您可以针对e.DataColumn.FieldName检查所需的列以及e.CellValue中所需的列值,然后您可以确定是否将该行绘制为红色。

我相信您可以自己为上述活动添加处理程序。

HTH