我正在尝试将鼠标添加到颜色更改功能到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;
没有找到正确的背景颜色?
我在这里错过了什么吗?
答案 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。