2011-01-19 2 views

ответ

2
this.MyGridView.RowDataBound += (s, ea) => 
{ 
if (ea.Row.Cells[1].Text.Contains(string.Format("{0}/0{1}", DateTime.Now.Day, DateTime.Now.Month))) 
{ 
    ea.Row.BackColor = Color.Red; 
} 
}; 
this.MyGridView.DataBind(); 

Это делает то, что вы хотите.

Обратите внимание, что string.format имеет 0, которого не должно быть. Это происходит потому, что DateTime.Now.Month возвращает 1 вместо 01.

[править]

Заметил некоторое время назад, что есть лучший способ сравнить даты в вашей стоимости с использованием

if (ea.Row.Cells[1].Text.Contains(DateTime.Now.ToString(MM/dd))) 
1

попробуйте использовать RowDataBound событие сетки, чтобы проверить столбец даты если (e.row.cell [1] = ...) , а оттуда вы можете получить доступ к e.Row.BackColor = ...

1

в моей мнение хорошее место для начала, если вы хотите изменить дизайн - настройки программного обеспечения datagridview используются с использованием datagridview.CellFormatting-Event

 private void _dgvDb_CellFormatting(Object sender, DataGridViewCellFormattingEventArgs e){ 
     if (e.Value != null && !String.IsNullOrEmpty(e.Value.ToString())) 
     { 
      switch (_dgvDb.Columns[e.ColumnIndex].Name) 
      { 
       case "YOUR_COLUMNNAME": 
        if("value==yourChosenValue"){ 

        } 
       break; 
       case "else": 
       } 
     } 
    } 
Смежные вопросы