我的gridview包含:
Fname|Born
aa |03/05
bb |19/01
cc |03/08
dd |19/01
如果今天是:19/01/2011
如何用红色标记满足条件的2行?
在C#asp.net
中感谢您的帮助
答案 0 :(得分: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 :(得分:1)
尝试使用网格的RowDataBound事件来测试日期列 if(e.row.cell [1] = ...) ,从那里你可以访问e.Row.BackColor = ...
答案 2 :(得分: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":
}
}
}