1

RadGridTelerikの列の色を変更したい。に色を付けたいのですが、に色をcol index 2,3変えたいですcol Index 0,1

列2、3の色は機能していCol index 0,1 is not working,ますが、インデックスに色がありませんCol index 0 & 1

これはコードです:

bool dontRunHandler;
private void datagridview_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 ) return;
        e.CellElement.DrawFill = true;
        e.CellElement.NumberOfColors = 1;
        e.CellElement.BackColor = Color.LightSlateGray;
        e.CellElement.GradientStyle = GradientStyles.Linear;


    }

    else
    {
        if (e.CellElement.ColumnIndex != 0 && e.CellElement.ColumnIndex != 1 ) return;
        e.CellElement.DrawFill = true;
        e.CellElement.NumberOfColors = 1;
        e.CellElement.BackColor = Color.MediumVioletRed;
        e.CellElement.GradientStyle = GradientStyles.Linear;
    }

}

ここに画像の説明を入力してください

4

1 に答える 1

1

あなたのコードは、2 つの条件のうち 1 つだけを実行することを示しています。セル 2 と 3に色を付ける
場合。 そうでない場合は、セル 0 と 1 に色を付ける。そうでない場合は 削除して、問題が解決するかどうかを確認します。 dontRunHandler =false
dontRunHandler =true

これは、列が 0 または 1 ではないと考えられるため、最初に if ステートメントが返されるために発生します。

代わりにColunnCreatedイベントを使用することをお勧めします。より高速でよりセマンティックであるとします。

  protected void RadGrid1_ColumnCreated(object sender, GridColumnCreatedEventArgs e)
    {
        if (e.Column.IsBoundToFieldName("ProductID"))
        {
            e.Column.ItemStyle.CssClass = "MyClass1";
        }
        else if (e.Column.IsBoundToFieldName("ProductName"))
        {
            e.Column.ItemStyle.CssClass = "MyClass2";
        }
    }

...
    <style type="text/css">
        .MyClass1
        {
            color: Red;
        }

         .MyClass2
        {
            color: Blue;
        }
    </style>

これはあなたのために働くものだと思いますか。または、何らかの理由で具体的にインデックスを使用していますか?

例を機能させたい場合は、次のようにします。

 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 (e.CellElement.ColumnIndex == 2 || e.CellElement.ColumnIndex == 3)
        {
            e.CellElement.DrawFill = true;
            e.CellElement.NumberOfColors = 1;
            e.CellElement.BackColor = Color.LightSlateGray;
            e.CellElement.GradientStyle = GradientStyles.Linear;
        }

        else if (e.CellElement.ColumnIndex == 0 || e.CellElement.ColumnIndex == 1)
        {
            e.CellElement.DrawFill = true;
            e.CellElement.NumberOfColors = 1;
            e.CellElement.BackColor = Color.MediumVioletRed;
            e.CellElement.GradientStyle = GradientStyles.Linear;
        }
于 2012-11-10T18:25:22.580 に答える