格式化GridView特定的值

要求:用gridview呈现数据库中的一个成绩表(只有3个字段),要求用不同于其他行的颜色标出不及格的成绩的行,并把小于60的分数字段列设置为不同于其他颜色。如下图:

 

 

解决办法:

我们可以通过响应Gridview.RowDataBand事件来完成此任务。该事件在网格的一部分(标题,脚注,分页,普通行或交替行,选定项)被创建时发生.

访问当前行时将其(当前行)视为GridViewRow控件。 gridviewrow.DataItem属性提供指定行的数据对象,而通过gridviewRow.Cells集合可以读取行的内容。通过GridView可以改变颜色和对其方式,增加或删除子控件等.

下面看实现上面效果的代码:

代码
//处理行数据绑定事件
        protected void GridView2_RowDataBound(object sender, GridViewRowEventArgs e)
        {
            
//检查当前行是不是数据行(不是网格的其他部分,如页面,脚注或标题).
            if (e.Row.RowType == DataControlRowType.DataRow)
            {
                
//得到正在被创建项的指定列(这里为"Scrore")的值
                int score =Convert.ToInt32( DataBinder.Eval(e.Row.DataItem, "Scrore "));
                
                
//如果成绩小于60分,设置行的背景色和行中具体的单元格的颜色、字体
                if (score < 60)
                {
                    e.Row.BackColor 
= System.Drawing.Color.YellowGreen;
                    e.Row.Cells[
2].ForeColor = System.Drawing.Color.Red;
                    e.Row.Cells[
2].Font.Bold = true;
                    e.Row.Cells[
2].Font.Size = 15;
                }
            }
        }

 

 

 

posted @ 2010-12-17 23:43  风云Fyun  阅读(237)  评论(0编辑  收藏  举报