C#开发学习笔记:GridView设置满足条件的单元格变色

来源:互联网 发布:世界各地社交软件 编辑:程序博客网 时间:2024/05/24 06:49
 private void gridView1_CustomDrawCell(object sender, DevExpress.XtraGrid.Views.Base.RowCellCustomDrawEventArgs e)        {            if (gridView1.GetDataRow(e.RowHandle) == null)                return;            if (e.Column.FieldName != "selected")            {                if (e.Column.FieldName =="WARRANTY_NO")                {                    if (gridView1.GetDataRow(e.RowHandle)["WARRANTY_NO"].ToString().Trim() == "")                    {                        //该行数据的该列的值不为空时时,其背景色为Red                        e.Appearance.BackColor = Color.Red;//设置单元格变色                        //e.Column.AppearanceCell.BackColor = Color.Red;//设置数据列变色                    }                }                else if (e.Column.FieldName == "BUY_ORDER_NO")                {                    if (gridView1.GetDataRow(e.RowHandle)["BUY_ORDER_NO"].ToString().Trim() == "")                    {                        //该行数据的该列的值不为空时时,其背景色为Red                        e.Appearance.BackColor = Color.Red;//设置单元格变色                        //e.Column.AppearanceCell.BackColor = Color.Red;//设置数据列变色                    }                }                else if (e.Column.FieldName == "CAR_NO")                {                    string AAA = gridView1.GetDataRow(e.RowHandle)["CAR_NO"].ToString().Trim();                    if (gridView1.GetDataRow(e.RowHandle)["CAR_NO"].ToString().Trim() == "")                    {                        //该行数据的该列的值不为空时时,其背景色为Red                        e.Appearance.BackColor = Color.Red;//设置单元格变色                        //e.Column.AppearanceCell.BackColor = Color.Red;//设置数据列变色                    }                }                else if (e.Column.FieldName == "PAST_NO")                {                    if (gridView1.GetDataRow(e.RowHandle)["PAST_NO"].ToString().Trim() == "")                    {                        //该行数据的该列的值不为空时时,其背景色为Red                        e.Appearance.BackColor = Color.Red;//设置单元格变色                        //e.Column.AppearanceCell.BackColor = Color.Red;//设置数据列变色                    }                }                else if (e.Column.FieldName == "WEIGH_SITE")                {                    if (gridView1.GetDataRow(e.RowHandle)["WEIGH_SITE"].ToString().Trim() == "")                    {                        //该行数据的该列的值不为空时时,其背景色为Red                        e.Appearance.BackColor = Color.Red;//设置单元格变色                        //e.Column.AppearanceCell.BackColor = Color.Red;//设置数据列变色                    }                }            }        }


注:

由于 CustomDrawCell   事件是重绘当前GridView的所有列,所以如果需要整行变色,只要设置所有的列都变色即可实现