Поделиться через


Практическое руководство. Управление перемещением по месяцам в серверном веб-элементе управления Calendar

Обновлен: Ноябрь 2007

По умолчанию в календаре отображается месяц, содержащий текущую дату. Пользователи могут перемещаться в элементе управления Calendar от месяца к месяцу, щелкая ссылки навигации по месяцам в строке заголовка календаря. Возможно управление доступностью этих ссылок для пользователя.

Существует также возможность программного перемещения, которая используется для предоставления пользователям альтернативного способа отображения конкретного месяца. Наконец, можно ответить на событие, создаваемое, когда пользователь выполняет переход.

Включение и отключение перемещения пользователя по месяцам

  • Присвойте свойству ShowNextPrevMonth элемента управления Calendar значение true или false. Если свойство имеет значение false, в заголовке данного элемента управления не отображаются элементы управления LinkButton, дающие пользователю возможность перемещаться по месяцам.

    1adzhse7.alert_note(ru-ru,VS.90).gifСовет.

    Внешний вид гиперссылок перехода по месяцам можно изменить, задавая значения свойств NextMonthText, PrevMonthText, NextPrevFormat и NextPrevStyle.

Программное перемещение по месяцам

  • Задайте в качестве значения свойства VisibleDate дату в месяце, который необходимо отобразить. Датой может быть любой день в пределах этого месяца, но обычно это первый день месяца. Если свойство VisibleDate пусто (то есть имеет значение DateTime.Empty), то текущий отображаемый месяц определяется по значению свойства TodaysDate.

    В приведенном ниже примере выполняется перемещение к февралю 2000 г.:

    Calendar1.VisibleDate = New Date(2000, 2, 1)
    
    Calendar1.VisibleDate = new DateTime(2000, 2, 1);
    

    Изменение значения свойства VisibleDate не влияет на значения свойств TodaysDate, SelectedDayStyle и SelectedDates.

Если включено перемещение по месяцам, при перемещении к другому месяцу элемент управления создает событие. Чтобы заменить или изменить стандартную реализацию перемещения по месяцам, можно обработать это событие. Например, при использовании двух элементов управления Calendar на странице планирования поездок можно запретить пользователю задавать месяц начальной даты позднее месяца конечной даты.

Реакция на событие перемещения по месяцам

  • Создайте метод-обработчик для событий VisibleMonthChanged элемента управления. Это событие возникает уже тогда, когда элемент управления изменил значение свойства VisibleMonth на единицу.

    Событие VisibleMonthChanged принимает одиночный аргумент типа MonthChangedEventArgs. Чтобы задать или переопределить действия пользователя, можно использовать следующие свойства данного аргумента:

    Свойство

    Описание

    PreviousDate

    Значение месяца, которое было отображено до нажатия кнопки перемещения по месяцам. Значение этого свойства можно сравнить со значением свойства VisibleMonth элемента управления, чтобы определить направление перемещения пользователя. Чтобы отменить действие пользовательского нажатия, присвойте это значение свойству VisibleDate элемента управления.

    NewDate

    Значение месяца, к которому перешел пользователь. Свойство VisibleDate получает это значение перед тем, как возникает событие VisibleMonthChanged.

    Public Sub Calendar1_VisibleMonthChanged(ByVal sender As Object, _
       ByVal e As System.Web.UI.WebControls.MonthChangedEventArgs) _
       Handles Calendar1.VisibleMonthChanged
    
       ' Select the 10th and 25th of each month.
       Calendar1.SelectedDates.Clear()
       Calendar1.SelectedDates.Add(New DateTime(e.NewDate.Year, e.NewDate.Month, 10))
       Calendar1.SelectedDates.Add(New DateTime(e.NewDate.Year, e.NewDate.Month, 25))
    End Sub
    
    private void Calendar1_VisibleMonthChanged (object sender, 
       System.Web.UI.WebControls.MonthChangedEventArgs e)
    {
         // Select the 10th and 25th of each month.
         Calendar1.SelectedDates.Clear();
         Calendar1.SelectedDates.Add(new DateTime(e.NewDate.Year, e.NewDate.Month, 10));
         Calendar1.SelectedDates.Add(new DateTime(e.NewDate.Year, e.NewDate.Month, 25));
    }
    

См. также

Основные понятия

Общие сведения о серверном веб-элементе управления Calendar