본문 바로가기

ASP.NET

[ASP.NET] 표준컨트롤 #3 - Calendar

 


Calendar 컨트롤은 웹 사이트에 달력을 쉽게 구현할 수 있도록 해줍니니다,
뿐만아니라 특정 일(Day), 주(week), 달(Month)을 선택하는 기능도 제공합니다.
Calendar 컨트롤을 사용하면 달력을 이용한 일정표를 쉽게 만들 수 있겠죠?

Calendar 컨트롤 이벤트를 주요 두 가지 이벤트를 소개하겠습니다,
'SelectionChanged' 와 'DayRender' 입니다.

'SelectionChanged' 이벤트는 특정 일, 주, 달을 선택했을 때 발생합니다.
'DayRender' 이벤트는 달력의 날짜 셀들이 하나씩 만들어질 때 발생합니다.

먼저 'SelectionChanged' 이벤트 예제입니다.


 


위의 코드는 특정 일, 주, 달이 선택되었을 때 실행되는 이벤트 처리기 입니다.
SelectedDate 속성의 Count 속성을 사용해 일, 주, 달 중 어떤 것을 선택했는지를 알아냅니다.
 
case (1); 즉, count가 1인 경우 일(Day)를 선택했을 때 일어나는 것으로 '선택한 일자'문구와 날짜가 게시됩니다.
case(7); 은 count가 7인 경우로 주(week)를 선택했을 때이며,
count가 그 외 숫자일 경우면 달(Month)를 선택했을 시 입니다.

DateTime 형식에서 제공되는 ToShortDateString() 메서드를 사용했기 때문에 웹을 보면 날짜가  ' 2011 - 06 - 05 ' 형식으로 표현됩니다.


 

DropDownList를 구현하는 컨트롤을 나타낸 소스입니다. 드롭다운리스트는 아래로 리스트가 나열되여 구현되는 것입니다.
SelectionMode 속성은 달력에서 일, 주, 달을 선택할 수 있게 합니다.





'DayRender' 이벤트 예제를 시작하겠습니다.



앞에서 말했 듯이 'DayRender' 이벤트는 날짜의 셀들이 하나씩 만들어 질 때 마다 발생합니다.
달력을 보면 가로 7칸, 세로 6칸이 있으므로 이 DayRender 이벤트 처리기는 6 * 7로 42번 실행되는 것입니다. 

if 구문으로 IsOtherMonth 속성을 사용해 현재보이는 달(6월)에 해당하는 날짜만 출력하도록 했습니다.

아래 코드에서 Getschedule로 특정날짜에 스케쥴을 표현하였습니다.




만약 6월 3일인 경우 '100일'로 입력하고 네이버 링크를 걸었습니다.
6월 3일이 아닌 6월 10일이나 6월 20일인 경우는 '영희 생일'과 '철수 생일'로 표시하였습니다.


Calendar 컨트롤의 Style을 지정한 것입니다.
SelectedDayStyle-BackColor 속성은 선택한 날짜의 배경 색상을 지정하는 속성입니다.
VisibleData 속성은 맨처음 달력에서 보여질 날짜를 지정하는 것입니다. "7/1/2010"으로 지정했으므로 현재날짜와 상관없이
2010년 7월 1일이 맨처음 보여지게 됩니다.