在 asp 日历中选择跨多个月的多个日期
Selecting multiple dates across multiple months in the asp calendar
我在使用 asp 日历时遇到了以下问题。
目前,我可以 select 在 1 个月内的范围内(我设置的)多个日期。但是,如果我的范围在 2 个月内(跨月),我将无法获得正确的 selected 日期。
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>();
我的问题已经解决了。这就是诀窍,我在我的 class 文件中添加了一个新的 List<>,并在日历 SelectionChanged 下添加了一个条件语句。因此它会为每次点击获取价值。
我在使用 asp 日历时遇到了以下问题。
目前,我可以 select 在 1 个月内的范围内(我设置的)多个日期。但是,如果我的范围在 2 个月内(跨月),我将无法获得正确的 selected 日期。
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>();
我的问题已经解决了。这就是诀窍,我在我的 class 文件中添加了一个新的 List<>,并在日历 SelectionChanged 下添加了一个条件语句。因此它会为每次点击获取价值。