2

Telerikを使用していて、col値をフォーマットしようとしています。列のインデックス番号12にはすでに色が付けられており(機能します)、特定の値を探します。存在する場合は、セルの色を変更します。セルの値が4354の場合は、セルの色を変更します。しかし、何も起こりません。以下のコードの間違いは何ですか?

private int cellValue = 4354;

for (int i = 0; i < TelerikRadGridView.Rows.Count; i++)
 {
 if (TelerikRadGridView.Rows[i].Cells[i].Value == (object)cellValue)
      {
            e.CellElement.BackColor = Color.Gold;
         }
   }

これは完全なコードです:

private int cellValue = 4354;
private void TelerikRadGridView_CellFormatting(object sender, CellFormattingEventArgs e)
    {

        e.CellElement.ResetValue(LightVisualElement.DrawFillProperty, ValueResetFlags.Local);
        e.CellElement.ResetValue(LightVisualElement.NumberOfColorsProperty, ValueResetFlags.Local);
        e.CellElement.ResetValue(LightVisualElement.GradientStyleProperty, ValueResetFlags.Local);
        e.CellElement.ResetValue(LightVisualElement.BackColorProperty, ValueResetFlags.Local);

        if (dontRunHandler == false)
            {
                if (e.CellElement.ColumnIndex != 2 
                && e.CellElement.ColumnIndex != 3 
                && e.CellElement.ColumnIndex != 4
                && e.CellElement.ColumnIndex != 5 
                && e.CellElement.ColumnIndex != 7 
                && e.CellElement.ColumnIndex != 11 
                && e.CellElement.ColumnIndex != 12 
                && e.CellElement.ColumnIndex != 13) return;
                e.CellElement.DrawFill = true;
                e.CellElement.NumberOfColors = 1;
                e.CellElement.BackColor = Color.LightSlateGray;
                e.CellElement.GradientStyle = GradientStyles.Linear;
            }
            for (int i = 0; i < TelerikRadGridView.Rows.Count; i++)
            {
                if (TelerikRadGridView.Rows[i].Cells[i].Value == (object)cellValue)
                {
                    e.CellElement.BackColor = Color.Gold;
                }
            }
4

1 に答える 1

2

あなたのためにそれを書き直して、あなたが望むことをするようにします:

private int cellValue = 4354;
private void TelerikRadGridView_CellFormatting(object sender, CellFormattingEventArgs e)
{
    e.CellElement.ResetValue(LightVisualElement.DrawFillProperty, ValueResetFlags.Local);
    e.CellElement.ResetValue(LightVisualElement.NumberOfColorsProperty, ValueResetFlags.Local);
    e.CellElement.ResetValue(LightVisualElement.GradientStyleProperty, ValueResetFlags.Local);
    e.CellElement.ResetValue(LightVisualElement.BackColorProperty, ValueResetFlags.Local);

    if (dontRunHandler == false)
    {
        if (e.CellElement.ColumnIndex != 2 
        && e.CellElement.ColumnIndex != 3 
        && e.CellElement.ColumnIndex != 4
        && e.CellElement.ColumnIndex != 5 
        && e.CellElement.ColumnIndex != 7 
        && e.CellElement.ColumnIndex != 11 
        && e.CellElement.ColumnIndex != 12 
        && e.CellElement.ColumnIndex != 13) return;
        else
        {
           if(e.CellElement.Value != null)
           {
               if (Double.Parse(e.CellElement.Value.ToString()) != cellValue)
               {
                   e.CellElement.DrawFill = true;
                   e.CellElement.NumberOfColors = 1;
                   e.CellElement.BackColor = Color.LightSlateGray;
                   e.CellElement.GradientStyle = GradientStyles.Linear;
               }
               else
               {
                   e.CellElement.DrawFill = true;
                   e.CellElement.NumberOfColors = 1;
                   e.CellElement.BackColor = Color.Gold;
                   e.CellElement.GradientStyle = GradientStyles.Linear;
               }
           }
        }
    }
于 2012-11-09T04:19:43.597 に答える