【问题标题】:Set row color of Telerik Grid设置 Telerik Grid 的行颜色
【发布时间】:2013-11-05 17:27:20
【问题描述】:

我使用 Telerik RadGrid 构建了一个网格。网格本身可以工作,但它是数据绑定到 SQL 数据库的。我正在尝试用不同颜色显示行。

这是我正在尝试做的一个示例:

这是我目前所拥有的:

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

对此的任何帮助都会很棒。

【问题讨论】:

    标签: colors grid telerik rows radgrid


    【解决方案1】:

    您可以使用样式触发器来完成此操作。

    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】:

      尝试使用以下代码根据特定值更改颜色。

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

      【讨论】:

      • 我对我的代码做了一些更改,但我仍然收到关于我的“红色”字段的错误。这是我的列名,所以不确定我是否以正确的方式使用它。
      【解决方案3】:

      想通了,实际上它真的很简单,只是说如果文本等于你需要的,那么它是一个红色行,或者如果它是其他东西,那么它是其他任何颜色。真的很简单,但是很多人都遇到过这个问题,所以希望这对其他人有帮助。

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

      【讨论】:

        猜你喜欢
        • 2014-09-16
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2016-12-10
        • 1970-01-01
        • 2017-11-29
        相关资源
        最近更新 更多