如何在aspxgrid中为一部分细胞着色?

时间:2012-03-12 08:42:23

标签: .net devexpress

在我的aspxgrid中,我已经动态创建了所有列,所以我有一个单元格包含三行中的三个状态。例如。

Item Status    Date
               1st 2nd . .... ...
     Booked     2   4  5 1 2 4........
 1   Available  1   1  1 1 1 1........
     Not Avail  0   0  0 0 0 0........

所以这些细胞是1行。我使用了customcolumndisplaytext事件来执行此操作。现在我想为三个状态行提供不同的颜色。你能帮帮我吗?我需要这样做,有几个项目,每个项目我有三个状态。 有没有不同的方法,请赐教。

谢谢, Mriganka

1 个答案:

答案 0 :(得分:0)

您应该使用GridViewDataColumn.DataItemTemplate结合简单的html元素来实现这一目标。另外,请查看DataItemTemplate demo

要获得更简单的解决方案,请将CustomColumnDisplayText中的e.DisplayText设置为html。

以下是CustomColumnDisplayText事件处理程序的示例,它在单元格内交替显示单词颜色:

protected void ASPxGridView1_CustomColumnDisplayText(object sender, ASPxGridViewColumnDisplayTextEventArgs e)
{
    if ("job_desc".Equals(e.Column.FieldName))
    {
        e.DisplayText = "";
        string[] tokens = ((string)e.Value).Split(' ');
        for (int i = 0; i < tokens.Length; i++)
        {
            if (i % 2 == 0)
            {
                e.DisplayText += "<span style='color:red'>" + tokens[i] + @"</span>";
            }
            else
            {
                e.DisplayText += "<span  style='color:blue'>" + tokens[i] + @"</span>";
            }
            e.DisplayText += " ";
        }
    }
}