一、背景
在开发中经常会遇到有需求根据某列上某些内容符合某些条件,在该行的某列(可以为自身,可以是所在行的某列)设置背景色以突出显示。网上查找的大多是判断某行某列然后直接在上面标注颜色,这里需要在其他地方标注,写下来以备后来人借鉴。
二、实现方法
在GridView的方法中有一个叫做CustomDrawCell,该方法是数据已绑定,而页面还在绘制过程中的方法,利用此方法可以根据内容在对应的单元格上标注颜色。详细代码如下:
private void gvCwzl_CustomDrawCell(object sender, DevExpress.XtraGrid.Views.Base.RowCellCustomDrawEventArgs e)
{
String abc = Convert.ToString(gvCwzl.GetRowCellValue(e.RowHandle, "abc"));
if (e.Column.Caption == "cba")
{
Color appNotPassDefault = e.Appearance.BackColor;
if (abc.Equals("aaa"))
{
e.Appearance.BackColor = Color.Red;
}
}
}
其中GetRowCellValue是GridView的方法,e.RowHandle用于获取某行数据,“abc”是列名,通过这个可以获取行中某列的值。
运行结果如图所示: