将鼠标悬停在ASP.NET日历中突出显示日期

时间:2012-09-04 16:18:07

标签: c# asp.net calendar mouseover

我正在尝试将鼠标添加到颜色更改功能到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;

没有找到正确的背景颜色?

我在这里错过了什么吗?

1 个答案:

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