如果使用单个日历在asp.net日历控件中选择了两个日期,如何选择日期

时间:2019-05-04 13:57:05

标签: c# asp.net calendar

这是我当前项目中的要求,我想选择12月1日,并且我将选择12月9日,包括两者之间的所有日期都应该被选中,包括所选日期。

在一个日历中,我需要允许所有12个月的时间。

对于每个月,例如,如果我选择11月3日和11月10日,则需要选择所有日期,包括所选日期,并且在单击“保存”按钮后,应该选择所选日期的第一个和最后一个日期进行存储< / p>

有人可以帮我吗,请问我患上了两天

预先感谢

我正在使用asp.net c#。

protected void calendar_onDayRender(object sender, DayRenderEventArgs e)
        {
            if (e.Day.Date.CompareTo(DateTime.Today) < 0)
            {
                e.Day.IsSelectable = false;
            }


                if (e.Day.Date.DayOfWeek == DayOfWeek.Sunday) //&& _lstholiday.Contains(e.Day.Date))
                {
                    e.Day.IsSelectable = false;
                    e.Cell.BackColor = System.Drawing.Color.Blue;

                    e.Cell.ForeColor = System.Drawing.Color.White;
                }
                List<DateTime> newList = (List<DateTime>)ViewState["HolidaysList"];
                if (newList.Contains(e.Day.Date)) //&& _lstholiday.Contains(e.Day.Date))
                {
                    e.Day.IsSelectable = false;
                    e.Cell.BackColor = System.Drawing.Color.Orange;

                    e.Cell.ForeColor = System.Drawing.Color.White;
                }
                if (Convert.ToDecimal(ViewState["WorkingDays"]) == Convert.ToDecimal(22))
                {
                    if (e.Day.Date.DayOfWeek == DayOfWeek.Saturday) 
                    {
                        e.Day.IsSelectable = false;
                        e.Cell.BackColor = System.Drawing.Color.Blue;

                        e.Cell.ForeColor = System.Drawing.Color.White;
                    }
                }
                if (e.Day.IsSelected == true)
                {

                    list.Add(e.Day.Date);
                }
                Session["SelectedDates"] = list;
                if (e.Day.IsSelected == true)
                {
                    if (Session["SelectedDates"] != null)
                    {
                        List<DateTime> _newList = (List<DateTime>)Session["SelectedDates"];

                        foreach (DateTime datecalendar1 in _newList)
                        {

                            //if (_newList.Contains(e.Day.Date))
                            //{
                            //    //calendar.SelectedDates.Remove(e.Day.Date);

                            //}
                            //else
                            //    list.Add(e.Day.Date);
                            if (datecalendar1.Date != calendar.SelectedDate.Date)
                            {
                                if (datecalendar1.Month == calendar.SelectedDate.Date.Month && datecalendar1.Year == calendar.SelectedDate.Date.Year)
                                {
                                    int CurrentMonth = calendar.SelectedDate.Month;
                                    int CurrentYear = calendar.SelectedDate.Year;

                                    // Set the start and end dates.
                                    DateTime BeginDate = new DateTime(CurrentYear, CurrentMonth, Convert.ToInt32(calendar.SelectedDate.Day));
                                    DateTime EndDate = new DateTime(CurrentYear, CurrentMonth,Convert.ToInt32(datecalendar1.Date.Day) );

                                    // Clear any selected dates.
                                    //calendar.SelectedDates.Clear();

                                    // Select the specified range of dates.
                                    calendar.SelectedDates.SelectRange(BeginDate, EndDate);
                                    for (BeginDate = BeginDate.Date; BeginDate <= EndDate; BeginDate.AddDays(1))
                                    {
                                        list.Add(BeginDate);
                                    }
                                }
                            }

                        }

                    }
                    else
                        list.Add(e.Day.Date);

                }
                Session["SelectedDates"] = list;
}
 protected void Calendar_SelectionChanged(object sender, EventArgs e)
        {
            if (Session["SelectedDates"] != null)
            {
                List<DateTime> newList = (List<DateTime>)Session["SelectedDates"];
                foreach (DateTime dt in newList)
                {


                    calendar.SelectedDates.Add(dt);


                     calendar.SelectedDates.Contains(calendar.SelectedDate.Date);
                }
                list.Clear();
            }
        }
````
````
   protected void btn_save_Click_Calendar(object sender, EventArgs e)
        {
            try
            {


                List<DateTime> list = (List<DateTime>)Session["SelectedDates"];
                foreach (var item in list)
                {
                    Dates.Add(new XElement("dt", new XAttribute("d", DateTime.Parse(item.ToShortDateString(), new CultureInfo("en-GB")))));
                }


               util._db.Ins_Leaveplanning(Convert.ToInt32(Session["empId"]),Dates.ToString());
                util.ShowMessage(util.Saved, util.MessageType.Success);
            }

0 个答案:

没有答案