【问题标题】:how to change gridview cell color based on cell item in DevExpress如何根据 DevExpress 中的单元格项目更改 gridview 单元格颜色
【发布时间】:2017-04-19 17:46:35
【问题描述】:

我的 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. 当存在 if == 1 then RED else White 的条件状态时,我想一次又一次地停止颜色的冷却。在此插图中,只有 1 行必须为红色,其他行必须为白色。但它不起作用。

【问题讨论】:

  • 请粘贴实际网格的屏幕截图,并用不同的背景颜色标记要显示的新行。
  • 好的,我会把它添加到我的问题中。

标签: c# datagridview devexpress aspxgridview


【解决方案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

【讨论】:

  • 感谢您的明确回答,我现在就试试,谢谢。
  • 非常感谢,我花时间寻找正确的答案。通过您的领导@andrews,我设法得到了准确的答案。我应该使用protected void ASPxGridViewTicket_HtmlDataCellPrepared(object sender, ASPxGridViewTableDataCellEventArgs e) 方法来获得正确的颜色。
  • @MichealP。不客气!我很高兴你能解决它;)。
猜你喜欢
  • 2013-04-30
  • 1970-01-01
  • 2013-11-17
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-08-22
相关资源
最近更新 更多