在asp日历中选择多个月份的多个日期

时间:2015-05-13 10:56:24

标签: c# asp.net web calendar

我遇到了asp日历的以下问题。

目前,我可以在1个月内选择范围内的多个日期(我已设定)。但是,如果我的范围在2个月(跨月)之内,我将无法获得正确的选定日期。

在2个月内:

如果我的日历显示在第1个月,我仍然可以获得2个月的日期,但可能在第2个月有重复日期。

如果我的日历显示在第2个月,我只能从第2个月开始。

对上述问题有何建议?在此先感谢〜=)

protected void CalendarMain_DayRender(object sender, DayRenderEventArgs e)
        {
            DateTime minDate, maxDate;
            if (!tbStartDate.Text.Equals("") && !tbEndDate.Text.Equals(""))
            {

                minDate = Convert.ToDateTime(tbStartDate.Text);
                maxDate = Convert.ToDateTime(tbEndDate.Text);

                if (e.Day.Date < minDate || e.Day.Date > maxDate)
                {
                    e.Day.IsSelectable = false;
                }

                if (e.Day.Date >= minDate && e.Day.Date.Date <= maxDate)
                {
                    e.Cell.BackColor = Color.FromName("#3f97ab");
                }


            }

            DataTable dtgv = Session["dtSelectedDateData"] as DataTable;
            if (dtgv != null)
            {

                foreach (DataRow drr in dtgv.Rows)
                {
                    string DateValue = drr["Time_Start"].ToString();

                    if (e.Day.Date.ToString("dd/MM/yyyy") == DateValue.Substring(0, 10))
                    {
                        e.Cell.ForeColor = System.Drawing.Color.Pink;
                        e.Day.IsSelectable = false;

                    }
                }
            }
            if (e.Day.IsSelected == true)
            {

                PatientsSchedule.listDatetime.Add(e.Day.Date);      
            }
            Session["SelectedDate"] = PatientsSchedule.listDatetime;
        }

public static List<DateTime> listDatetime = new List<DateTime>();

1 个答案:

答案 0 :(得分:0)

我已经解决了我的问题。这是诀窍,我添加了一个新的List&lt;&gt;在我的类文件和日历SelectionChanged下的条件语句中。因此它将捕获每次点击的价值。