我有Asp.net日历。如果我选择一个日期更改所选日期的颜色。但是我选择了多个日期选择日期颜色不保留。如何解决问题?
<asp:Calendar ID="calDate" runat="server" SelectedDayStyle-BackColor="DarkBlue" selectionmode="DayWeekMonth"
selectorstyle-font-bold="True" selectorStyle-backcolor="#3366ff"
font-name="Tahoma" font-size="12" backcolor="ivory"
selecteddaystyle-font-bold="True" OnDayRender="calDate_DayRender" OnSelectionChanged="calDate_SelectionChanged" >
protected void calDate_DayRender(object sender, DayRenderEventArgs e)
{
if (e.Day.IsSelected)
e.Cell.BackColor = Color.Orange;
}
答案 0 :(得分:0)
基于您使用ASP.net内置日历控件的假设。
您需要跟踪所选日期。这样做的一种方法是使用Session。另一个可能是ViewState等。这里有一些示例代码可以帮助您入门:
public static List<DateTime> list = new List<DateTime>();
protected void calDate_DayRender(object sender, DayRenderEventArgs e)
{
if (e.Day.IsSelected == true)
{
list.Add(e.Day.Date);
e.Cell.BackColor = Color.Orange;
}
Session["SelectedDates"] = list;
}
protected void calDate_SelectionChanged(object sender, EventArgs e)
{
if (Session["SelectedDates"] != null)
{
List<DateTime> newList = (List<DateTime>)Session["SelectedDates"];
foreach (DateTime dt in newList)
{
calDate.SelectedDates.Add(dt);
}
list.Clear();
}
}