Chapter 10 BLOG 이벤트 캘린더 구현
도킹의 BLOG는 공부노트이기 때문에 달력을 누르면 모든 노트와 노트 답변을 확인할 수 있습니다.
난이도 분석: Calendar 달력 컨트롤을 템플릿에 직접 추가해야 합니까? 아니요! 그건 작동하지 않습니다! Calendar 달력 컨트롤은 서버 컨트롤이므로 runat="server"를 포함하는 형식이어야 합니다. 그러나 페이지에는 runat="server"를 포함하는 형식이 하나만 있을 수 있습니다. 그렇지 않으면 그림 10-1에 표시된 오류가 발생합니다. 가끔 나타나게 됩니다.
그림 10-1 페이지에 runat="server" 형식을 포함하는 오류가 하나만 있을 수 있는 경우 어떻게 해야 합니까
? 다음은 전송을 위한 임베디드 프레임워크입니다.
10.1 Calendar 달력 컨트롤 추가
(1) 새로운 빈 ASP.NET VB 동적 페이지를 만듭니다.
(2) runat="server" 형식을 삽입하고 꺼내고 ID="Calfrm"을 설정합니다.
(3) 그림 10-2와 같이 ASP.NET 바로가기 메뉴에서 "More Tags" 버튼을 클릭하고 팝업 [Tag Selector] 대화상자에서 "ASP.NET Tags"에서 "asp Calendar"를 선택합니다. .
그림 10-2 "asp Calendar" 태그 삽입
(4) "Insert" 버튼을 누르면 그림 10-3과 같이 [Tag Editor-Calendar] 대화상자가 나타납니다. 이 대화 상자에서는 Calendar 달력 컨트롤의 스타일을 설정할 수 있습니다. 중국어로 되어 있으므로 여기서는 자세히 설명하지 않겠습니다.
(5) ASP.NET VB 동적 페이지를 dkCalendar.aspx로 저장합니다. 그림 10-4와 같이 IE에서 탐색합니다.
그림 10-3 [태그 편집기-캘린더] 대화 상자
그림 10-4 IE에서 dkCalendar.aspx 탐색
그림 10-1-4에서 주 표시가 너무 길고 보기 흉하다는 것을 알 수 있습니다! "하루, 하나, 둘, 셋, 넷, 다섯, 여섯"이라고 읽어주시면 좋을 것 같습니다.
10.2 달력의 주 표시 수정
(1) Dreamweaver에서 dkCalendar.aspx를 열고 코드 보기로 전환한 후 다음 코드를 찾습니다.
<
%@ Page Language="VB" ContentType="text/html" ResponseEncoding="gb2312 " %>
다음으로 변경합니다:
<%@ Page Language="VB" Debug="true" Culture="zh-CN"%>
(2) ASP.NET 바로가기 메뉴에서 "а:xy" 버튼을 클릭하고 삽입합니다. 그림 10-5와 같은 네임스페이스입니다.
(3) 이번에 새 코드를 추가합니다.
<%@ Import Namespace="" %>
입력 네임스페이스는 System.Globalization입니다. 즉, 코드가 다음으로 변경됩니다.
<%@ Import Namespace="System.Globalization" %>
(4) Namespace System.Threading을 다시 추가하면 그림 10-6과 같습니다.
그림 10-5 네임스페이스 삽입
그림 10-6 네임스페이스 삽입 후의 코드
(5) 코드
<%@ Import Namespace="System.Treading" %>
뒤에 빈 줄을 두고 다음 코드를 삽입합니다.
<script runat="server">
Dim dkday ' 정의 날짜를 선택하여 생성된 링크 문자열의 전역 변수
' 주 표시를 변경하는 함수
Private Sub Calendar1_PreRender(ByVal sender As Object, ByVal e As System.EventArgs) Handles Calendar1.PreRender
Dim dkwek = System.Threading.Thread. CurrentThread
Dim dknew = System.Globalization.CultureInfo.CurrentCulture.Clone()
dknew.DateTimeFormat.DayNames = New String() {"일", "1", "2", "3", "4", "5", "六"}
dknew.DateTimeFormat.FirstDayOfWeek = DayOfWeek.Sunday
dkwek.CurrentCulture = dknew
End Sub
</script>
(6) 달력 컨트롤 Calendar1의 원본 코드를 선택하고 [Label] 패널의 [Properties] 탭으로 전환합니다. , "Appearance" 옵션을 확장하고 그림 10-7과 같이 "DayNameFormat" 항목의 드롭다운 메뉴를 선택한 다음 "Full"을 선택합니다.
(7) dkCalendar.aspx를 저장하고 IE에서 찾아봅니다. 결과는 그림 10-8과 같습니다.
그림 10-7 "DayNameFormat" 값을 "Full"로 선택 그림 10-8dkCalendar.aspx 수정 후 IE 10.3에서
캘린더 이벤트 추가
(1) Dreamweaver에서 dkCalendar.aspx를 열고 코드 보기로 전환한 후 원본 코드 선택 Calendar1 을 마우스 오른쪽 버튼으로 클릭하고 그림 10-9와 같이 팝업 바로가기 메뉴에서 "Edit Label (E) <asp:calendar>"를 선택합니다.
그림 10-9 "Edit Label (E) <asp:calendar>" 선택
(2) [Edit Label—calendar] 팝업 대화상자에서 "Events" 항목을 확장하고 "OnSelectionChanged"를 선택한 후 "Calendar"를 클릭합니다. —OnSelectionChanged" 이벤트 텍스트 영역에 그림 10-10과 같이 "Calendar1_SelectionChanged"를 입력하고 "확인" 버튼을 누릅니다.
그림 10-10 OnSelectionChanged 이벤트 편집
(3) <script runat="server"> 코드 태그에 그림 10-11의 빨간색 원 안에 표시된 코드를 추가합니다.
그림 10-11 Calendar1_SelectionChanged 이벤트 추가
(4) <head></head> 태그 사이에 그림 10-12의 빨간색 원 안에 표시된 코드를 삽입합니다.
(5) <body> 태그를 찾아 그림 10-13의 빨간색 원 안에 표시된 코드로 변경합니다.
그림 10-12 자바스크립트 함수 dkwk 삽입
그림 10-13 <body> 태그 수정
(6) Calendar1의 "DayNameFormat" 항목을 다시 "Full"로 설정합니다. 10.2절의 6단계를 참조하십시오.
(7) dkCalendar.aspx를 저장하고 index.aspx를 열고 page_load 함수에 다음 코드를 추가합니다.
if Request.QueryString("dkday")<>nothing then
Ztre.CommandText="SELECT * FROM ZTRE WHERE cstr(ZITIME) LIKE ' %" &Request.QueryString("dkday")&"%' ORDER BY ZITIME DESC"
else
if (request.QueryString("menanw")<>nothing) 또는 (session("menanw")<>nothing) then
Ztre .CommandText ="SELECT * FROM ZTRE WHERE LMID = ? ORDER BY ZITIME DESC"
else
Ztre.CommandText="SELECT * FROM ZTRE ORDER BY ZITIME DESC"
end if
end if
결과는 그림 10-14에 나와 있습니다.
그림 10-14 page_load 함수에 코드(8)를 추가하여
레코드 세트 Ztre의 원래 코드를 찾고 해당 CommandText가 있는 명령줄을 삭제합니다. 결과는 그림 10-15의 빨간색 원에 표시됩니다.
그림 10-15 수정된 레코드 세트 Ztre의 원본 코드(9)는
index.aspx를 저장합니다.
10.4 포함된 프레임 추가
(1) dkblog.dwt.aspx 템플릿을 열고 ASP.NET 바로가기 메뉴에서 "추가 태그" 바로가기 버튼을 클릭한 후 나타나는 [태그 선택기] 대화상자에서 "HTML 태그"를 선택합니다. 그리고 그림 10-16과 같이 "iframe" 항목을 선택합니다.
그림 10-16 iframe 태그(임베디드 프레임) 삽입
(2) "삽입" 버튼을 클릭한 후, 팝업되는 [태그 편집기-iframe] 대화상자에서 삽입할 임베디드 프레임에 대해 그림과 같이 관련 설정을 합니다. 그림 10-17에 나와 있습니다.
그림 10-17 삽입된 프레임 관련 설정
(3) "확인" 버튼을 눌러 [태그 편집기-iframe] 대화상자로 돌아간 후, "닫기" 버튼을 누릅니다.
(4) dkblog.dwt.aspx 템플릿을 저장하고 모든 웹페이지를 업데이트합니다.
(5) IE에서 index.aspx를 검색하면 그림 10-18과 같은 결과가 표시됩니다.
그림 10-18 IE에서 index.aspx 검색
알림: 사실 달력 이벤트의 구현은 매우 복잡한 이벤트입니다. 다음은 간단한 예입니다. 이 섹션의 또 다른 어려움은 내장된 프레임워크에 의한 기본 창 개체의 제어입니다. 여기서는 기본 창 웹 페이지의 흐름을 제어하기 위해 " parent.location.href "만 사용합니다. 천천히 공부하는 것은 독자들의 몫이다.