簡體   English   中英

在條件下更改 DevExpress GridView 上的行背景顏色

[英]Changing Row Back Color on DevExpress GridView on condition

我有兩個網格視圖和一個按鈕單擊按鈕我將數據從 gridView1 復制到 gridView2 這是我的代碼:

private async void btnAdd_Click(object sender, EventArgs e)
    {
        int[] selectedRows = gridView1.GetSelectedRows();
        for (int i = 0; i < selectedRows.Length; i++)

        {
            DataRow rowGridView1 = (gridView1.GetRow(selectedRows[i]) as DataRowView).Row;
            for (int j = 0; j < gridView3.RowCount; j++)
            {
                if (rowGridView1["BS"].ToString() == gridView3.GetRowCellValue(j, "ProjectN").ToString() &&
                    rowGridView1["Repère"].ToString() == gridView3.GetRowCellValue(j, "Parts").ToString())
                {
                    DataRow row = dt.NewRow();
                    row[0] = rowGridView1["BS"];
                    row[1] = gridView3.GetRowCellValue(j, "Parts");
                    row[2] = gridView3.GetRowCellValue(j, "Profile");
                    row[3] = rowGridView1["Quantité"];

                    dt.Rows.Add(row);
                }
                else if(j == (gridView3.RowCount -1)) 
                {
                    gridView1.RowStyle += (senderr, ee) => {

                        if (gridView1.GetFocusedDataRow() == rowGridView1)
                        {
                            ee.Appearance.BackColor = Color.Red;
                            ee.HighPriority = true;
                        }
                    };
                }
            }
        }

我想更改與條件不匹配的 gridView1 行的背景顏色,以便驗證它們
不幸的是,所有行都變成紅色。
我該如何解決這個問題。
提前致謝

Giannis Paraskevopoulos 的回答

這里代碼修改,它是用記事本完成的,它仍然是測試。

首先gridview1的背景顏色必須根據“BS”和“repère”的值改變,這在RowStyle function中完成。

private void gridView1_RowStyle(object sender, RowStyleEventArgs e)  {  

    If (e.RowHandle = this.gridView1.FocusedRowHandle)  
    {
       string strBS = gridView1.GetRowCellValue(row, "BS");
       string strRepere = gridView1.GetRowCellValue(row, "Repère");
        if (SearchRow(strBS,strRepere)==true)
         {
           e.Appearance.BackColor = Color.Red  
           e.HighPriority = True  
          }
    }
}

private bool SearchRow(string strBS, string strRepere)  {  
    bool RowExist=false;
    for (int j = 0; j < gridView3.RowCount; j++)
    {
      if (gridView3.GetRowCellValue(j, "ProjectN").ToString() ==strBS &&
        gridView3.GetRowCellValue(j, "Parts").ToString()==strRepere)
      {
         RowExist=true;
         Break;
      }
    }
   return RowExist;    
}

將 gridview1 行添加到 gridview3

private async void btnAdd_Click(object sender, EventArgs e)
{
        int[] selectedRows = gridView1.GetSelectedRows();
        for (int i = 0; i < selectedRows.Length; i++)
        {
            DataRow rowGridView1 = (gridView1.GetRow(selectedRows[i]) as DataRowView).Row;
            for (int j = 0; j < gridView3.RowCount; j++)
            {
                if (rowGridView1["BS"].ToString() == gridView3.GetRowCellValue(j, "ProjectN").ToString() &&
                    rowGridView1["Repère"].ToString() == gridView3.GetRowCellValue(j, "Parts").ToString())
                {
                    DataRow row = dt.NewRow();
                    row[0] = rowGridView1["BS"];
                    row[1] = gridView3.GetRowCellValue(j, "Parts");
                    row[2] = gridView3.GetRowCellValue(j, "Profile");
                    row[3] = rowGridView1["Quantité"];

                    dt.Rows.Add(row);
            dt.AcceptChanges();
                }
            }
       }

       gridView1.Datasource=dt;
       grid.DataBind();
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM