Вы можете также разрешить выбирать целые недели или месяцы, а также отдельные даты, или же представить элемент управления как статический календарь, не допускающий выбора. Единственное, что следует запомнить, это то, что при разрешении выбора месяца пользователь также может выбирать отдельные недели или дни. Аналогично, при разрешении выбора недели пользователь также может выбирать отдельные дни. Тип выбора устанавливается с помощью свойства Calendar.SelectionMode. Вам может также понадобиться установка свойства Calendar.FirstDayOfWeek для настройки выбора недели. (Например, при установке FirstDayOfWeek в перечислимое значение Monday будут выбираться недели с понедельника до воскресенья.)

Если вы разрешаете множественный выбор даты (установив Calendar.SelectionMode во что-нибудь, отличное от Day), вам понадобится проверять свойство SelectedDates вместо SelectedDate. SelectedDates представляет коллекцию всех выбранных дат, которую можно просматривать, как показано ниже:

protected void Calendar1_SelectionChanged(object sender, EventArgs e)
{
  lblDates.Text = "You selected these dates:<br />";
  foreach (DateTime dt in Calendar1.SelectedDates)
  {
    lblDates.Text += dt.ToLongDateString() + "<br />";
  }
}

Элемент управления Calendar поддерживает очень много свойств, связанных с форматированием, большинство из которых отображаются на базовое табличное представление HTML (например, CellSpacing, CellPadding, Caption и CaptionAlign). Более того, можно отдельно настроить части элементов управления с помощью групповых настроек форматирования подназванием стилей (предоставляющих опции цвета, шрифта и выравнивания), например, DayHeaderStyle, DayStyle, NextPrevStyle, OtherMonthDayStyle, SelectedDayStyle, TitleStyle, TodayStyle и WeekendDayStyle. Подсвойства всех этих стилей можно изменять с помощью окна Properties.

Наконец, за счет обработки события DayRender вы можете полностью изменить внешний вид преобразуемой ячейки. Событие DayRender является очень мощным. Кроме того, что оно позволяет настроить возможность выбора определенных дат, оно также допускает настройку ячейки, в которой находится дата, через свойство е.Cell. (Элемент управления Calendar на самом деле является сложной HTML-таблицей). Например, можно выделить важную дату или даже добавить в ячейку дополнительные элементы управления либо HTML-содержимое. Ниже представлен пример, изменяющий цвета фона и изображения выходных дней и делающий невозможным их выбор:

protected void Calendar1_DayRender(object sender, DayRenderEventArgs e)
{
  if (e.Day.IsWeekend)
  {
    e.Cell.BackColor = System.Drawing.Color.Green;
    e.Cell.ForeColor = System.Drawing.Color.Yellow;
    e.Day.IsSelectable = false;
  }
}

предыдущая    следующая страница   оглавление

200

Hosted by uCoz