0

ASP.NET の既定のカレンダーにマウス オーバーの色変更機能を追加しようとしています。これまでのところ、次のコードを実装しようとしました。

    Color col = new Color();
    col = Calendar1.DayStyle.BackColor;
    if (col != Color.Empty)
    {
        e.Cell.Attributes["onmouseover"] = "this.style.backgroundColor='pink';";
        e.Cell.Attributes["onmouseout"] = "this.style.backgroundColor='" + col + "';";
    }
    else
    {
        e.Cell.Attributes["onmouseover"] = "this.style.backgroundColor='pink';";
        e.Cell.Attributes["onmouseout"] = "this.style.backgroundColor='';";
    }

日付をクリックしないと、問題なく動作しているように見えます。ただし、日付をクリックして日付の背景を灰色に変更すると、背景色がピンクに変更され、再び白に戻ります。これはどういうわけかラインのようです

    col = Calendar1.DayStyle.BackColor;

正しい背景色を拾っていませんか?

ここで見逃したものはありますか?

4

1 に答える 1

0

プログラムでそれをしない理由:

Color col = new Color();
col = (e.IsSelected) ? Calendar1.SelectedDayStyle.BackColor.ToString() : Calendar1.DayStyle.BackColor.ToString();

e.Cell.Attributes["onmouseover"] = "this.style.backgroundColor='pink';";
e.Cell.Attributes["onmouseout"] = "this.style.backgroundColor='" + col + "';";

現在の日がレンダリング対象として選択されているかどうかを判断するために必要なのは、すべてです。IsSelected プロパティがあるかどうかはわかりません。そうでない場合は、e.IsSelected をそれを行うものに置き換えます。

于 2012-09-04T17:55:58.880 に答える