2013-10-26 3 views
1

Я использовал Telerik RadGrid для построения сетки. Сама сетка работает, но она привязана к базе данных SQL. Я пытаюсь отобразить строки с разными цветами.Установить цвет ряда сетки Telerik

Вот пример того, что я пытаюсь сделать:

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

Смежные вопросы