/// <summary> /// Called by DayButton /// </summary> /// <param name="date"></param> public void DayButtonClicked(DateTime date) { if (DateSelectionMode == Dates.DateSelectionMode.SingleDate) { SelectedDate = date; } else { if (SelectedDates.Any(d => d == date)) { SelectedDates.Remove(date); } else { SelectedDates.Add(date); } } if (Ref_DatePicker_DateRange != null) { Ref_DatePicker_DateRange.DateSelected(date); } if (Config.Events.OnDaySelected != null) { Config.Events.OnDaySelected.Invoke(date); } UpdateDisplay(); // I would have preferred to have this react automatically to changes, // but that would mean setting up an observable list, which is an added // complication we don't need right now UpdateInputFieldText(); }
private void DayPresenter_Unselected(object sender, SelectedDateChangedEventArgs e) { var dateTime = (DateTime)e.SelectedDate; _isInternalSet = true; if (SelectedDates == null) { SelectedDates = new ObservableCollection <DateTime>(); } switch (Mode) { case CalendarXMode.Date: break; case CalendarXMode.DateRange: SelectedDate = null; break; case CalendarXMode.MultipleDate: if (SelectedDates.Contains(dateTime)) { SelectedDates.Remove(dateTime); } SelectedDate = null; break; } UpdateDays(CurrentYear, CurrentMonth); UpdateYears(CurrentYear, CurrentMonth); UpdateMonths(CurrentYear, CurrentMonth); _isInternalSet = false; }
protected void ResetButton(CalendarButton b) { if (b.Date.HasValue) { SelectedDates?.Remove(b.Date.Value.Date); } var spD = SpecialDates?.FirstOrDefault(s => s.Date.Date == b.Date.Value.Date); SetButtonNormal(b); if (spD != null) { SetButtonSpecial(b, spD); } }
protected void calSelect_SelectionChanged(object sender, EventArgs e) { if (SelectedDates.Count() != 2 && calSelect.SelectedDate >= DateTime.Today) { if (!SelectedDates.Contains(calSelect.SelectedDate)) { SelectedDates.Add(calSelect.SelectedDate); } else { SelectedDates.Remove(calSelect.SelectedDate); } } else if (SelectedDates.Count() == 2 && SelectedDates.Contains(calSelect.SelectedDate)) { SelectedDates.Remove(calSelect.SelectedDate); } ViewState["SelectedDates"] = SelectedDates; int dayz = 0; if (SelectedDates.Count() == 2) { dayz = (SelectedDates[0] - SelectedDates[1]).Days; if (dayz < 0) { dayz = -dayz; lblDates.Text = SelectedDates[0].ToString("dd/MM/yyyy") + " - " + SelectedDates[1].ToString("dd/MM/yyyy"); } else { lblDates.Text = SelectedDates[1].Date.ToString("dd/MM/yyyy") + " - " + SelectedDates[0].Date.ToString("dd/MM/yyyy"); } txtDayz.Text = (dayz + 1).ToString(); } else if (SelectedDates.Count() == 1) { dayz = 1; txtDayz.Text = (dayz).ToString(); lblDates.Text = SelectedDates[0].ToString("dd/MM/yyyy"); } else { txtDayz.Text = "0"; lblDates.Text = ""; } }
private void OnDateLimitChanged() { _isInternalSet = true; if (SelectedDates == null) { SelectedDates = new ObservableCollection <DateTime>(); } if (SelectedDate != null && MinDate != null && SelectedDate < MinDate) { var date = (DateTime)SelectedDate; if (SelectedDates.Contains(date)) { SelectedDates.Remove(date); } SelectedDate = MinDate; SelectedDates.Add((DateTime)SelectedDate); } else if (SelectedDate != null && MaxDate != null && SelectedDate > MaxDate) { var date = (DateTime)SelectedDate; if (SelectedDates.Contains(date)) { SelectedDates.Remove(date); } SelectedDate = MaxDate; SelectedDates.Add((DateTime)SelectedDate); } if (SelectedDates != null) { for (int i = SelectedDates.Count - 1; i >= 0; i--) { var date = SelectedDates[i]; if (date < MinDate || date > MaxDate) { SelectedDates.RemoveAt(i); } } } UpdateDays(CurrentYear, CurrentMonth); UpdateMonths(CurrentYear, CurrentMonth); UpdateYears(CurrentYear, CurrentMonth); }