Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/35.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# Asp.Net日历中的多日期选择器_C#_Asp.net - Fatal编程技术网

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

C# Asp.Net日历中的多日期选择器,c#,asp.net,C#,Asp.net,我有Asp.net日历。如果我选择了一个日期,请更改所选日期的颜色。但我选择了多个日期,则不会保留所选日期的颜色。如何解决这个问题 <asp:Calendar ID="calDate" runat="server" SelectedDayStyle-BackColor="DarkBlue" selectionmode="DayWeekMonth" selectorstyle-font-bold="True" selectorStyle-backcolor="#3366ff

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

}

受保护的无效calDate_DayRender(对象发送方,DayRenderReventArgs e)
{
如果(如选择的日期)
e、 Cell.BackColor=Color.Orange;
}

基于您正在使用ASP.net内置日历控件的假设

您需要跟踪所选日期。一种方法是使用会话。另一个可能是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();
        }
}
publicstaticlist=newlist();
受保护的无效calDate_DayRender(对象发送方,DayRenderReventArgs e)
{
如果(e.Day.IsSelected==true)
{
列表。添加(如日期);
e、 Cell.BackColor=Color.Orange;
}
会话[“选定日期”]=列表;
}
受保护的无效calDate_SelectionChanged(对象发送方,事件参数e)
{
如果(会话[“SelectedDates”]!=null)
{
列表新建列表=(列表)会话[“选定日期”];
foreach(newList中的DateTime dt)
{
calDate.SelectedDates.Add(dt);
}
list.Clear();
}
}

你能更清楚地回答这个问题吗?或者你能分享一下你的代码吗?是的,哪个日历?你有没有考虑过它可能是一个不支持它的?它是system.web.ui.WebControl.calendar,然后使用另一个。一个能很好地做到这一点的(支持多选)。到目前为止你都尝试了什么?提供一些代码!控件具有选择周、月等的功能。我不知道它是否允许选择不连续的日期范围。看看
SelectionMode
property->我的答案对你有用吗。如果回答了,你能把它标记为“已回答”吗。谢谢