繁体   English   中英

如何通过单元格值更改 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 事件。 您的代码正在根据最后一行中的值为每一行设置 apperence。

尝试这个:

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;
    }
   }
 }

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM