设置Telerik Grid的行颜色

时间:2013-10-26 17:04:47

标签: colors grid telerik rows radgrid

我使用Telerik RadGrid构建网格。网格本身可以工作但它可以数据绑定到SQL数据库。我试图显示不同颜色的行。

这是我想要做的一个例子:

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

任何帮助都会很棒。

3 个答案:

答案 0 :(得分: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; 
         } 
     } 

答案 1 :(得分: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();
    }
}

答案 2 :(得分: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;
                }
              }