如何按单元格值更改 gridview 行颜色?
How to change gridview row color by cell value?
我有手机名"MY_CELL"
如果 "MY_CELL" 值可以,我想创建!然后该行颜色将更改为 GreenYellow。
private void gridView2_RowStyle(object sender, DevExpress.XtraGrid.Views.Grid.RowStyleEventArgs e)
{
if (gridView2.RowCount > 0)
{
for (int i = 0; i < gridView2.DataRowCount; i++)
{
string text_sms2 = gridView2.GetRowCellValue(i, "MY_CELL").ToString();
if (text_sms2.Contains("ok"))
{
e.Appearance.BackColor = Color.GreenYellow;
}
else
{
e.Appearance.BackColor = Color.Red;
}
}
}
}
这些代码似乎有效,但我所有行的颜色都随着 "GreenYellow" 发生了变化。
不需要循环,因为会为每一行引发 RowStyle 事件。您的代码根据最后一行中的值为每一行设置外观。
试试这个:
private void gridView2_RowStyle(object sender, DevExpress.XtraGrid.Views.Grid.RowStyleEventArgs e) {
if (e.RowHandle >= 0) {
e.HighPriority = true;
var text = gridView2.GetRowCellDisplayText(e.RowHandle, view.Columns["MY_CELL"]);
if(text.Contains("ok") { // mind case sensitivity!!!
e.Appearance.BackColor = Color.GreenYellow;
}
else {
e.Appearance.BackColor = Color.Red;
}
}
}
我有手机名"MY_CELL" 如果 "MY_CELL" 值可以,我想创建!然后该行颜色将更改为 GreenYellow。
private void gridView2_RowStyle(object sender, DevExpress.XtraGrid.Views.Grid.RowStyleEventArgs e)
{
if (gridView2.RowCount > 0)
{
for (int i = 0; i < gridView2.DataRowCount; i++)
{
string text_sms2 = gridView2.GetRowCellValue(i, "MY_CELL").ToString();
if (text_sms2.Contains("ok"))
{
e.Appearance.BackColor = Color.GreenYellow;
}
else
{
e.Appearance.BackColor = Color.Red;
}
}
}
}
这些代码似乎有效,但我所有行的颜色都随着 "GreenYellow" 发生了变化。
不需要循环,因为会为每一行引发 RowStyle 事件。您的代码根据最后一行中的值为每一行设置外观。
试试这个:
private void gridView2_RowStyle(object sender, DevExpress.XtraGrid.Views.Grid.RowStyleEventArgs e) {
if (e.RowHandle >= 0) {
e.HighPriority = true;
var text = gridView2.GetRowCellDisplayText(e.RowHandle, view.Columns["MY_CELL"]);
if(text.Contains("ok") { // mind case sensitivity!!!
e.Appearance.BackColor = Color.GreenYellow;
}
else {
e.Appearance.BackColor = Color.Red;
}
}
}