GridView是.net中很常用的一个用来展现数据库数据的控件,下面我来实现如何根据日期改变GridView中每行字体的颜色。
这个例子用需要使用gridview中的onrowdatabound.
protected void GridView_UnconfirmedQuotes_RowDataBound(object sender, GridViewRowEventArgs e)
{
if (e.Row.RowType == DataControlRowType.DataRow)
{
LinkButton lbtn = (LinkButton)e.Row.FindControl("lbtn_un_quotenum");
//转化为DATE格式,方便比较,String无法比较
DateTime nowdate = DateTime.Now; //系统当前时间
DateTime quotedate = DateTime.Parse(e.Row.Cells[1].Text.ToString());
TimeSpan ts = nowdate - quotedate;
int days = ts.Days; //相差天数
days = days / 10; //10天为界限
switch (days)
{
case 0: //10天之内
{
lbtn.ForeColor = Color.Red;
for (int j = 0; j < e.Row.Cells.Count; j++)
{
e.Row.Cells[j].ForeColor = Color.Red;
}
break;
}
case 1: //大于等于10天小于20天
{
lbtn.ForeColor = Color.Blue;
for (int j = 0; j < e.Row.Cells.Count; j++)
{
e.Row.Cells[j].ForeColor = Color.Blue;
}
break;
}
default: //大于等于20天
{
lbtn.ForeColor = Color.Green;
for (int j = 0; j < e.Row.Cells.Count; j++)
{
e.Row.Cells[j].ForeColor = Color.Green;
}
break;
}
}
}
}
效果如上图所示。