【问题标题】:Telerik RadGridView change cell color depending of another cell value using C#Telerik RadGridView 使用 C# 根据另一个单元格值更改单元格颜色
【发布时间】:2014-10-31 07:49:05
【问题描述】:

我正在使用Telerik RadGridView。我正在尝试根据另一个单元格的值更改一个单元格的颜色。我正在尝试使用此代码来实现这一目标:

if (e.Column.Name == "colDate" && !string.IsNullOrEmpty(e.CellElement.Value.ToString()))
{
    if (DateTime.Now > DateTime.Parse(e.CellElement.Value.ToString()))
    {
        e.Row.Cells["colColor"].Style.DrawFill = true;
        e.Row.Cells["colColor"].Style.BackColor = Color.Red;
        e.Row.Cells["colColor"].Style.NumberOfColors = 1;
    }
}

但由于某种原因,它不会改变颜色。我注意到的是,当我更换时

e.Row.Cells["colColor"].Style

与

e.CellElement

它会改变颜色。但随后它改变了错误单元格的颜色(这是完全合乎逻辑的,因为它在当前单元格上)。但我不想更改当前单元格。

有什么建议吗?

【问题讨论】:

  • 我在 Telerik 论坛上再次问了这个问题,并且有正确的答案。有一个look

标签: c# winforms telerik radgridview


【解决方案1】:

您可以使用 Telerik api 文档中记录的基于规则的格式化对象。

他们的代码示例如下所示

ConditionalFormattingObject obj = new ConditionalFormattingObject("MyCondition", ConditionTypes.Greater, "30", "", false);
obj.CellBackColor = Color.SkyBlue;
obj.CellForeColor = Color.Red;
obj.TextAlignment = ContentAlignment.MiddleRight;
this.radGridView1.Columns["UnitPrice"].ConditionalFormattingObjectList.Add(obj);

为了解释这一点,创建了一个名为 MyCondition 的规则,它表示如果此单元格值大于 30,则将单元格的背景颜色设为 SkyBlue,前景颜色设为红色。将单元格的内容对齐到右中并将其绑定到名为 UnitPrice 的列。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-02-07
    • 2014-11-29
    • 2019-07-15
    • 2020-12-02
    • 1970-01-01
    相关资源
    最近更新 更多