Как изменить цвет строки gridview по значению ячейки? - PullRequest
0 голосов
/ 29 мая 2020

У меня есть имя ячейки "MY_CELL", которое я хочу создать, если значение "MY_CELL" в порядке! тогда цвет этой строки будет изменен на GreenYellow.

    private void gridView2_RowStyle(object sender, DevExpress.XtraGrid.Views.Grid.RowStyleEventArgs e)
{
if (gridView2.RowCount > 0)
            {
                for (int i = 0; i < gridView2.DataRowCount; i++)
                {

                     string text_sms2 = gridView2.GetRowCellValue(i, "MY_CELL").ToString();                

                     if (text_sms2.Contains("ok"))
                    { 
                        e.Appearance.BackColor = Color.GreenYellow;
                    }
                    else
                    {
                        e.Appearance.BackColor = Color.Red;
                    }
                }
            }
}

Кажется, этот код работает, но цвет всех моих строк изменился на «GreenYellow».

1 Ответ

2 голосов
/ 29 мая 2020

Нет необходимости в l oop, поскольку событие RowStyle возникает для каждой отдельной строки. Ваш код устанавливает внешний вид для каждой строки в соответствии со значением в последней.

Попробуйте следующее:

private void gridView2_RowStyle(object sender, DevExpress.XtraGrid.Views.Grid.RowStyleEventArgs e) {

  if (e.RowHandle >= 0) {
    e.HighPriority = true;
    var text = gridView2.GetRowCellDisplayText(e.RowHandle, view.Columns["MY_CELL"]);

    if(text.Contains("ok") { // mind case sensitivity!!!
      e.Appearance.BackColor = Color.GreenYellow;
    }            
    else {
      e.Appearance.BackColor = Color.Red;
    }
   }
 }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...