我的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;
}
}
}
你有解决方案吗?谢谢!
这是一个插图:
答案 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