Question

I have used Telerik RadGrid to build a grid. The grid itself works but it is databound to a SQL database. I am trying to display rows with different colors.

Here is an example of what I am trying to do:

enter image description here

Here is what I have so far:

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;
            } 
        }
    }

Any help with this would be great.

Was it helpful?

Solution 3

Figured it out and its really simple actually, just going to say if the text equals what you need it to be then its a red row or if its something else then its whatever other color. Really easy but a lot of people have had this issue so hopefully this helps others.

     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;
                }
              }

OTHER TIPS

Try the following code to change the color based on a particular value.

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; 
         } 
     } 

You can use style triggers to accomplish this.

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();
    }
}
Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top