2013-10-26 64 views
1

我已經使用Telerik RadGrid建立網格。網格本身工作,但它是一個SQL數據庫的數據綁定。我試圖顯示不同顏色的行。設置Telerik Grid的行顏色

這裏是什麼,我試圖做一個例子:

enter image description here

這是我到目前爲止有:

protected void SummaryGrid_ItemDataBound(object sender, GridItemEventArgs e) 
    { 
     if (e.Item is GridDataItem) 
     { 
      GridItem dataItem = e.Item; 
      if (dataItem["Red"].Text = "Red") 
      { 
       dataItem.BackColor = Color.Red; 
      } 
     } 
    } 

任何幫助,這將是巨大的。

回答

0

想通了其真正的其實很簡單,只需要說,如果文本等於你需要它,然後它是一個紅色的行或如果別的東西那麼它的任何其他顏色。真的很容易,但很多人都有這個問題,所以希望這可以幫助其他人。

 if (e.Item is GridDataItem) 
      { 
       var item = (GridDataItem)e.Item; 
       if (item["Type"].Text == "RedRow") 
       { 
        item.BackColor = Color.Red; 
       } 
       else if(item["Type"].Text == "OrangeRow") 
       { 
        item.BackColor = Color.Orange; 
       } 
       } 
0

您可以使用樣式觸發器來完成此操作。

的App.xaml

<Style BasedOn="{StaticResource GridViewRowStyle}" TargetType="telerik:GridViewRow"> 
      <Style.Triggers> 
       <DataTrigger Binding="{Binding YourObject.Size Converter={StaticResource ColorConverter}}" Value="Red"> 
        <Setter Property="Background" Value="Red" /> 
        <Setter Property="FontWeight" Value="Bold" /> 
       </DataTrigger> 
       <DataTrigger Binding="{Binding YourObject.Size Converter={StaticResource ColorConverter}}" Value="Green"> 
        <Setter Property="Background" Value="Green" /> 
       </DataTrigger> 
      </Style.Triggers> 
     </Style> 

ColorConverter.cs

public class ColorConverter : IValueConverter 
{ 
    public object Convert(object value, Type targetType, object parameter, CultureInfo culture) 
    { 
     if (value is int) 
     { 
      if ((int)value > 100) 
       return "Red"; 
      else 
       return "Green"; 
     } 
     else 
      return "Default"; 
    } 

    public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture) 
    { 
     // TODO: Implement this method 
     throw new NotImplementedException(); 
    } 
} 
1

嘗試下面的代碼來改變基於特定值的顏色。

protected void RadGrid1_ItemDataBound(object sender, GridItemEventArgs e) 
    { 

     if (e.Item is GridDataItem) 
     { 
     GridDataItem dataItem = e.Item; 
     if (dataItem["Size"].Text == "1") 
     { 
      dataItem.BackColor = Drawing.Color.Red; 
     } 
    } 
+0

我對代碼做了一些更改,但仍然收到有關我的「紅色」字段的錯誤。這是我的專欄名稱,因此不確定我是否正確地使用它。 – CSharpDev4Evr