我正在使用 DevExpress GridView 并通过 C# 代码绑定数据。
我的要求是根据我在代码逻辑中执行的计算来更改行颜色。
我想遍历所有可用的行,如果行单元格值与条件的结果匹配,我需要更改颜色。
我在网上看到了示例和示例源,但似乎没有任何东西可以让我解决这个问题。他们中的大多数都在使用 XAML 代码或使用 DataBinding 或在 DataBound 期间等。我不太习惯使用 inotifyvaluechange。
期待您的支持和建议。
我正在使用 DevExpress GridView 并通过 C# 代码绑定数据。
我的要求是根据我在代码逻辑中执行的计算来更改行颜色。
我想遍历所有可用的行,如果行单元格值与条件的结果匹配,我需要更改颜色。
我在网上看到了示例和示例源,但似乎没有任何东西可以让我解决这个问题。他们中的大多数都在使用 XAML 代码或使用 DataBinding 或在 DataBound 期间等。我不太习惯使用 inotifyvaluechange。
期待您的支持和建议。
试试这个 DevExpress Gridview
using DevExpress.XtraGrid.Views.Grid;
private void gridView1_RowStyle(object sender,
DevExpress.XtraGrid.Views.Grid.RowStyleEventArgs e) {
GridView View = sender as GridView;
if(e.RowHandle >= 0) {
string category = View.GetRowCellDisplayText(e.RowHandle, View.Columns["Category"]);
if(category == "Beverages") {
e.Appearance.BackColor = Color.Salmon;
e.Appearance.BackColor2 = Color.SeaShell;
}
}
}
输出
private void grvAssesse_RowCellStyle(object sender, DevExpress.XtraGrid.Views.Grid.RowCellStyleEventArgs e)
{
if (e.RowHandle >= 0)
{
GridView View = sender as GridView;
if (Condition)
{
e.Appearance.ForeColor = Color.Red;
}
}
}
您需要全局设置条件,基于该条件网格将为每一行加载执行此事件。
有关更多详细信息,请参阅: GridView
您可以处理 HtmlRowPrepared 事件以更改行的颜色。
以下是可以帮助您的示例:
protected void ASPxGridView1_HtmlRowPrepared(object sender, DevExpress.Web.ASPxGridView.ASPxGridViewTableRowEventArgs e) {
if (e.RowType != GridViewRowType.Data) return;
e.Row.BackColor = System.Drawing.Color.LightCyan; // Changes The BackColor of ENTIRE ROW
e.Row.ForeColor = System.Drawing.Color.DarkRed; // Change the Font Color of ENTIRE ROW
}
您还可以设置一些条件,以便仅对几行进行着色,例如:
protected void ASPxGridView1_HtmlRowPrepared(object sender, DevExpress.Web.ASPxGridView.ASPxGridViewTableRowEventArgs e) {
if (e.RowType != GridViewRowType.Data) return;
int VALUE = Convert.ToInt32(e.GetValue("COLUMNNAME"));
if (VALUE < 20)
{
e.Row.BackColor = System.Drawing.Color.LightCyan; // Changes The BackColor of ENTIRE ROW
e.Row.ForeColor = System.Drawing.Color.DarkRed; // Change the Font Color of ENTIRE ROW
}
}