3

我有一个 radGridView,用户插入行,我想用空值突出显示单元格。例如使单元格的背面颜色为红色。我已经尝试了下面的代码,但它没有工作......

在一个按钮里面

for (int j = 0; j < radGridView1.Rows.Count; j++)
{
      if (radGridView1.Rows[j].Cells[4].Value.ToString() == "")                
          radGridView1.Rows[j].Cells[4].Style.ForeColor = Color.Red;  
}

那么该怎么做呢?或者如果有更好的突出显示方法来通知用户空单元格。

提前致谢

4

3 回答 3

2

法德,

我会保持清洁和重点:

  • 03Usr的回答是说一行,你要单个单元格

  • Cyber​​Dude 的回答没有考虑 Telerik 的 DGV 必须修改外观和功能的许多事件

话虽如此,您的代码似乎想要突出显示空值(null 不等于空):

private void radGridView1_CellFormatting(object sender, CellFormattingEventArgs e)
{
    if (e.RowIndex != -1)
    {
        if (e.CellElement.Value != null && e.CellElement.Value.ToString() == "")
        {                    
            radGridView1.Rows[e.CellElement.RowIndex].Cells[e.CellElement.ColumnIndex].Style.BackColor = Color.Red;
            radGridView1.Rows[e.CellElement.RowIndex].Cells[e.CellElement.ColumnIndex].Style.CustomizeFill = true;
        }

    }
}

在此处输入图像描述

于 2012-11-27T15:49:04.910 回答
0

我在ItemDataBound活动中这样做,如下所示:

TableCell myCell = ((GridDataItem)e.Item)["ColumnName"];
...
myCell.ForeColor = Color.ForestGreen;
...
于 2012-11-26T13:26:01.373 回答
0

您可以添加OnRowDataBound="radGridView1_RowDataBound"到您的网格视图。每个 gridview 行都会触发此事件。

在后面的代码中,您可以拥有以下内容:

public void radGridView1_RowDataBound(object sender, GridViewRowEventArgs e)
{
    if (e.Row.RowType == DataControlRowType.DataRow)
    {
        // do your highlighting here
        if (e.Row.Cells[1].Value.ToString() == "")
        {
            e.Row.ForeColor = Color.Red;
        }

    }
}
于 2012-11-26T14:20:40.653 回答