Asp.Net日历中的多日期选择器

时间:2014-03-19 06:26:19

标签: c# asp.net

我有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;

}

1 个答案:

答案 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();
        }
}