我正试图在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;
没有选择正确的背景颜色吗?
这里有我错过的东西吗?
为什么不以编程方式进行:
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替换为具有此功能的内容。