每次客户端在Calender控件上选择日期时,我都会在服务器上添加DateTime对象列表,然后突出显示控件上的所有选定日期。我能够突出显示(更改背景颜色)页面加载列表中实例化的日期,以及客户端的第一个选定日期。然而,控件上的进一步日期选择只是改变突出显示的日期,即。没有突出更多。
我曾经想过在选择时将所选的DateTime对象添加到运行时的列表中,然后将它们中的每一个添加到日历“选定日期”属性将解决日历控件清除SelectedDates属性时选择的问题一个新的约会。通过将日期列表中的所有日期打印到文本框进行调试,显示列表实例化的日期和最新选择仅在列表中,而不是之前的选择。我的问题和我认为的问题, 服务器上的列表是否可以在运行时由客户端的操作填充,并添加到? 我在VS2008上使用ASP和C#.Net3.5。 感谢
我的代码 System.Collections.Generic.List日期;
protected void Page_Load(object sender, EventArgs e) {
this.dates = new List<DateTime>();
this.dates.Add(new DateTime(2009,12,2));
this.dates.Add(new DateTime(2009, 12, 3));
this.dates.Add(new DateTime(2009, 12, 16));
fillDates();
}
protected void AvailCalender_SelectionChanged(object sender, EventArgs e){
this.dates.Add(this.AvailCalender.SelectedDate);
foreach (DateTime date in this.dates)
{
this.AvailCalender.SelectedDates.Add(date);
this.displayText.Text = this.displayText.Text + date.ToShortDateString();
}
fillDates();
}
protected void fillDates()
{
foreach (DateTime dates in this.dates)
{
this.AvailCalender.SelectedDates.Add(dates);
}
this.AvailCalender.SelectedDayStyle.BackColor = System.Drawing.Color.Blue;
}
答案 0 :(得分:0)
每个回发都会创建List<DateTime>
,因此它不会保存以前的选择。您需要以某种方式保留它,例如使用ViewState
,Session
或将其存储在数据库中。只有在第一次使用Page.IsPostBack
创建它时才能检查这是否是第一次点击该页面。