방법: Calendar 웹 서버 컨트롤에서 월 탐색 제어

업데이트: 2007년 11월

기본적으로 달력은 오늘 날짜를 포함하는 월을 표시합니다. 사용자는 달력의 제목 표시줄에서 월 탐색 링크를 클릭하여 Calendar 컨트롤에서 월 사이를 이동할 수 있습니다. 또한 사용자가 이 링크를 클릭할 수 있는지 여부를 제어할 수 있습니다.

프로그래밍 방식으로도 월을 탐색할 수 있으며 이 방식은 사용자가 특정 월을 표시할 수 있도록 하려는 경우에 유용합니다. 마지막으로, 사용자가 탐색을 수행할 때 발생되는 이벤트에 응답할 수 있습니다.

사용자 월 탐색을 사용하거나 사용하지 않으려면

  • Calendar 컨트롤의 ShowNextPrevMonth 속성을 true 또는 false로 설정합니다. false로 설정할 경우 컨트롤 제목에 LinkButton 컨트롤이 표시되지 않기 때문에 사용자가 월 사이를 이동할 수 없게 됩니다.

    팁:

    월 탐색 하이퍼링크의 모양은 NextMonthText, PrevMonthText, NextPrevFormatNextPrevStyle 속성을 설정하여 변경할 수 있습니다.

월을 프로그래밍 방식으로 탐색하려면

  • 컨트롤의 VisibleDate 속성을 표시하려는 월의 날짜로 설정합니다. 해당 월의 어떤 일자를 날짜로 설정해도 되지만 일반적으로 월의 첫 번째 일자로 설정합니다. VisibleDate 속성이 비어 있으면(DateTime.Empty로 설정된 경우) 현재 표시되는 월이 TodaysDate 속성의 값에서 파생됩니다.

    다음 예제는 2000년 2월을 탐색합니다.

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

    VisibleDate 속성을 변경해도 TodaysDate, SelectedDayStyle 또는 SelectedDates 속성의 값에는 영향을 주지 않습니다.

월 탐색을 사용하도록 설정할 경우 사용자가 다른 월로 이동하면 컨트롤이 이벤트를 발생시킵니다. 이 이벤트를 처리하여 기본 월 탐색을 바꾸거나 수정할 수 있습니다. 예를 들어 여행 계획 페이지에 두 개의 Calendar 컨트롤을 사용하는 경우 사용자가 시작 날짜 월을 마지막 날짜 월보다 늦게 설정하지 않도록 할 수 있습니다.

월 탐색 이벤트에 응답하려면

  • 컨트롤의 VisibleMonthChanged 이벤트에 대한 메서드를 만듭니다. 이 이벤트가 발생되면 컨트롤이 이미 VisibleMonth 속성을 1씩 변경했습니다.

    VisibleMonthChanged 이벤트는 MonthChangedEventArgs 형식의 단일 인수를 사용합니다. 이 인수의 다음과 같은 속성을 사용하여 사용자의 동작을 확인하거나 재정의할 수 있습니다.

    속성

    설명

    PreviousDate

    사용자가 월 탐색 단추를 클릭하기 전에 표시된 월의 값. 이 속성 값을 컨트롤의 VisibleMonth 속성 값과 비교하여 사용자의 탐색 방향을 확인할 수 있습니다. 사용자 클릭의 효과를 취소하려면 컨트롤의 VisibleDate 속성을 이 값으로 설정합니다.

    NewDate

    사용자가 탐색한 월의 값. VisibleMonthChanged 이벤트가 발생하기 전에 VisibleDate 속성이 이 값으로 업데이트됩니다.

    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 웹 서버 컨트롤 개요