2015-07-10 195 views
2

在我的GridView中,我有列名Switch,它可以在每行中包含三個不同的值; L,B和T.GridView中的背景顏色

您可以根據值L,B和T關聯不同的背景顏色?

例如,當行的列名稱Switch中包含值L時,背景顏色爲黃色,此時值B表示行背景顏色爲綠色,值T表示行背景顏色爲紅色。

你能幫我嗎?

+0

您可以在網格視圖的rowdatabound事件中執行此操作。這個事件將觸發每一行網格,意味着你將有權訪問每行數據。因此您可以檢查該值並繪製行背景顏色。 –

回答

1

你可以做這樣的事情,如果電網存在於一個Windows窗體,

dataGridView1.Rows.OfType<DataGridViewRow>() 
        .Where(x => Convert.ToString(x.Cells["Switch"].Value) == "L").ToList() 
        .ForEach(x => x.DefaultCellStyle.BackColor = Color.Yellow); 

希望這有助於...

+0

你的建議應該包含在RowDataBound事件中嗎? – DanielV

1

可以在RowsAdded事件試試這個

private void dataGridView1_RowsAdded(object sender, DataGridViewRowsAddedEventArgs e) 
    { 
     var row = dataGridView1.Rows[e.RowIndex]; 
     if (String.CompareOrdinal(row.Cells["Switch"].Value.ToString(), "L") == 0) 
     { 
      row.DefaultCellStyle.BackColor = Color.Yellow; 
     } 
     else if (String.CompareOrdinal(row.Cells["Switch"].Value.ToString(), "B") == 0) 
     { 
      row.DefaultCellStyle.BackColor = Color.Blue; 
     } 
    }