我試圖選擇和取消選擇C#Web日曆控件上的日期。在ASP.NET日曆控件中取消選擇日期
我遇到的問題是我可以選擇或取消選擇日期,除非只有一個選定的日期。
點擊它不會觸發選擇更改事件,所以需要在dayrender事件上做些事情,但我不確定是什麼或如何。
編輯:添加了Pre_Render事件代碼。這似乎現在工作,但它似乎有點不穩定,例如。 選擇日期:OK 選擇日期B:OK 取消他們兩個:OK 選擇日期答:不行的,需要選擇兩次 取消日期:好的 選擇日期C:日期A和C選擇
@John
是的,我知道該控件是.NET 2.0框架的一部分,與C#本身無關。
到目前爲止的代碼:
public static List<DateTime> list = new List<DateTime>();
protected void Calendar1_DayRender(object sender, DayRenderEventArgs e)
{
if (e.Day.IsSelected == true)
{
list.Add(e.Day.Date);
}
Session["SelectedDates"] = list;
}
protected void Calendar1_SelectionChanged(object sender, EventArgs e)
{
DateTime selection = Calendar1.SelectedDate;
if (Session["SelectedDates"] != null)
{
List<DateTime> newList = (List<DateTime>)Session["SelectedDates"];
foreach (DateTime dt in newList)
{
Calendar1.SelectedDates.Add(dt);
}
if (searchdate(selection, newList))
{
Calendar1.SelectedDates.Remove(selection);
}
list.Clear();
}
}
public bool searchdate(DateTime date, List<DateTime> dates)
{
var query = from o in dates
where o.Date == date
select o;
if (query.ToList().Count == 0)
{
return false;
}
else
{
return true;
}
}
protected void Calendar1_PreRender(object sender, EventArgs e)
{
if (Calendar1.SelectedDates.Count == 1)
{
foreach (DateTime dt in list)
{
if (searchdate(dt, list) && list.Count == 1)
{
Calendar1.SelectedDates.Clear();
break;
}
}
}
}
@yomismo:你可能知道這一點,但日曆與C#無關。它是.NET的一部分,而不是C#語言的一部分。 – 2010-04-13 07:32:14