2

DevExpress GridView を使用し、C# コードを介してデータをバインドしています。

私の要件は、コード ロジックで実行する計算に基づいて行の色を変更することです。

利用可能なすべての行をトラバースしたいのですが、行セルの値が条件の結果と一致する場合は、色を変更する必要があります。

Web で例とサンプル ソースを見てきましたが、問題を解決するように指示するものは何もないようです。それらのほとんどは、XAML コードを使用しているか、DataBinding を使用しているか、DataBound などを使用しています。inotifyvaluechange を使用するのはあまり快適ではありません。

ご支援とご提案をお待ちしております。

4

3 に答える 3

2

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

出力

ここに画像の説明を入力

于 2012-11-09T05:03:24.003 に答える
1
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

于 2012-11-09T05:07:23.073 に答える
0

行の色を変更するための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
        }
}
于 2012-11-13T21:58:12.837 に答える