2013-09-23 77 views
1

我在C#網格視圖中使用了一些代碼,並根據值標記了不同的顏色。我還希望通過更改紅色背景的前景色來使其更容易閱讀。可能是一個愚蠢的問題,但我怎麼能在代碼中實現這一點,它會標記背色紅色和前景色白色?我嘗試了幾種方法,但在這裏沒有成功。它可以正常工作,但我想在這裏使用兩者。GridView格式問題

protected void grd_RowDataBound(object sender, GridViewRowEventArgs e) 
{ 
    if (e.Row.RowType == DataControlRowType.DataRow) 
    { 
     System.Data.DataRow row = ((System.Data.DataRowView)e.Row.DataItem).Row; 
     if (row["Qty To Sell"].ToString() == "1") 
      e.Row.BackColor = System.Drawing.Color.LightSalmon; 
     else if (row["Qty To Sell"].ToString() == "3") 
      e.Row.BackColor = System.Drawing.Color.LightSalmon; 
     else if (row["Qty To Sell"].ToString() == "2") 
      e.Row.BackColor = System.Drawing.Color.LightSalmon; 
     else if (row["Qty To Sell"].ToString() == "0") 
      e.Row.BackColor = System.Drawing.Color.Red; 
+0

如果這是WPF和XAML,它聽起來像是[DataTrigger]的完美例子(http://msdn.microsoft.com/en-us/library/system.windows.datatrigger.aspx) – SlightlyCuban

+0

這可以是使用StyleTrigger或甚至轉換器完成。如果我有一些時間,我會嘗試併發布解決方案。 –

回答

0

我使用標籤屬性來做到這一點。

定義你的電話號碼PARAMS:

int two = 2; 
int four = 4; 

找到標籤:

Label my_label = (Label)row.FindControl("your_label"); 

轉換該標籤值的整數:

int lbl_value = Convert.ToInt32(my_label.Text); 

然後在你的,如果更改標籤屬性聲明:

if (lbl_value == two) 
    { 
     my_label.BackColor = System.Drawing.Color.White; 
     my_label.Forecolor = System.Drawing.Color.Red; 
    } 

依此類推。我喜歡只更改標籤屬性而不是整行。