5장 노트 메뉴 열 및 답변 구현
4장에서 완성된 홈 페이지는 실제로 매우 불완전합니다. 첫째, 노트 메뉴 열에 링크가 없고, 둘째, 노트 제목을 클릭하면 링크가 불가능합니다. 셋째, 작성자를 클릭하면 작성자 정보로 연결될 수 없습니다. 이 장에서는 이러한 기능이 개선될 것입니다.
: bkblog.dwt.aspx 템플릿에서 메뉴 열의 하이퍼링크를 수정한 다음 홈페이지를 열 때 모든 웹 페이지를 업데이트하고 탐색하여 연구 노트의 내용을 표시합니다. 시간 내림차순으로 메뉴 컬럼을 클릭하면, 시간 내림차순으로 학습 노트 내용을 표시할 수도 있습니다.
5.1.1 템플릿 메뉴 생성
(1) 템플릿 bkblog.dwt.aspx를 열고 동적 텍스트(menuda.LM)를 선택한 후 하이퍼링크를 생성하고 홈페이지 링크(index.aspx)를 선택한 후 [Code Display View]를 선택하여 이동합니다. 그림 5-1-1에서 빨간색 수직선이 표시된 곳으로 마우스를 이동합니다. (아래 특별한 설명은 없으며, 기호는 모두 영문입니다.)
그림 5-1-1 링크 속성으로 마우스 이동
(2) "?menanw="(menanw는 매개 변수 변수)를 입력하고 [Binding] 패널로 전환한 후 데이터 세트(menuda) 아래의 LMID 필드를 드래그하여 지금은 등호를 입력한 후 결과가 그림 5-1-2에 표시됩니다.
그림 5-1-2 동적 속성(a.href) 삽입
(3) [서버 동작] 패널로 전환하면 그림 5와 같이 서버 동작이 추가된 것을 확인할 수 있습니다: 동적 속성(a.href) -1-3 :
그림 5-1-3 서버 동작 패널
(4) "홈" 메뉴를 선택하고 index.aspx에 대한 링크를 생성합니다. "연락처"를 선택하고 mailto:[email protected]에 대한 링크를 생성합니다.
(5) bkblog.dwt.aspx 템플릿을 저장하면 그림 5-1-4와 같은 대화상자가 나타납니다.
그림 5-1-4 템플릿 파일 업데이트 대화 상자.
(6) "업데이트" 버튼을 클릭하여 노트 메뉴 열을 완성하고 홈페이지 index.aspx를 업데이트합니다.
5.1.2 홈 페이지에 컬럼 표시 구현
(1) 홈 페이지 index.aspx를 열고 [Server Behavior] 패널로 전환한 후 데이터 세트(Ztre)를 더블 클릭하고 팝업 데이터 세트 대화 상자에서 , 그림 5-1-5와 같이 "고급" 버튼을 클릭하세요. 복사할 SQL 명령을 선택하여 새로 생성한 메모장이나 Word 텍스트에 붙여넣는 것이 좋습니다. (SQL에 익숙하다면 이 단계를 건너뛰어도 됩니다.) 언어) .
그림 5-1-5 데이터세트 고급 대화 상자
(2) "Simple" 버튼을 클릭한 후, [필터] 드롭다운 메뉴에서 필터 필드를 LMID로 선택하고, 매개변수 전송 방법으로 "URL 매개변수"를 선택하고 입력합니다. 매개변수 변수는 menanw입니다. "확인" 버튼을 누르면 결과가 그림 5-1-6에 표시됩니다.
그림 5-1-6 Ztre 데이터 세트를 필터로 수정
(3) 그림 5-1-7과 같이 IE로 홈 페이지를 탐색하지만 탐색 결과가 기록되지 않습니다.
그림 5-1-7 홈 페이지 탐색 그림
(4) 홈 페이지 IE 탐색에서 "네트워크 프로그래밍" 링크를 클릭하면 이전 장의 그림 4-3-3에 결과가 표시되며 모든 네트워크 프로그래밍 학습 노트가 표시됩니다. .
"잠깐만요. 이것은 원래 디자인 아이디어와 일치하지 않습니다! 모든 연구 노트가 아닌 열로만 표시할 수 있습니다. ASP.NET 페이지 간 데이터 전송 문제도 있습니다. Windows 응용 프로그램의 Forms 간 데이터입니다." 전역 변수(공용 정적 변수) 및 기타 방법을 정의하여 전송을 수행할 수 있습니다. 그러나 ASP.NET의 웹 페이지 간에 데이터를 전송하는 데는 이러한 방법을 사용할 수 없습니다. 예를 들어, 데이터 세트 탐색 표시줄을 클릭하면 Ztre_currentPage의 데이터가 전송되지만 menanw의 데이터는 전송될 수 없습니다. 즉, 데이터 세트 탐색 표시줄의 하이퍼링크를 클릭하면 데이터가 전송됩니다. menan에 의해 전송된 값은 항상 null이 됩니다. 이는 열 표시를 실현할 뿐만 아니라 동시에 열 아래에 페이징 표시도 수행합니다. 다음은 세션을 사용하여 매개변수를 전달하는 솔루션입니다.
(5) 매개 변수 menanw를 session("menanw")에 전달하기 위해 코드 뷰로 전환하여 <html> 태그 앞에 그림 5-1-8의 빨간색 원 안에 표시된 코드를 삽입합니다.
그림 5-1-8 index.aspx에 페이지를 삽입하여 기본 함수 로드
(6) [Server Behavior] 패널에서 데이터셋(Ztre)을 선택하면 그림 5-1-9와 같이 검은색 부분이 데이터 세트(Ztre) 정의 코드.
그림 5-1-9 데이터 세트 Ztre의 코드
(7) 코드 찾기:
CommandText='<%# "SELECT * FROM ZTRE WHERE LMID = ? ORDER BY ZITIME ASC" %>'
위 코드를 다음으로 변경:
CommandText=' <%# IIf(((request.QueryString("menanw")<>nothing) 또는 Request.QueryString("Ztre_CurrentPage") <> Nothing),"SELECT * FROM ZTRE WHERE LMID = ? ORDER BY ZITIME DESC","SELECT * FROM ZTRE ORDER BY ZITIME DESC") %>'
(8) 코드 발견:
<Parameter Name="@LMID" Value='<%# IIf((request.QueryString("menanw") <> Nothing), request. QueryString("menanw"), "") %>' Type="Integer" /></Parameters></MM:DataSet>
위 코드를 다음과 같이 변경합니다:
<Parameter Name="@LMID" Value='<% # IIf((session("menanw") <> Nothing), session("menanw"), "") %>' Type="Integer" /></Parameters></MM:DataSet>
(9) IE 찾아보기 수행 , 그 결과는 4장의 그림 4-3-3과 같다. 확립된 디자인 아이디어를 완성합니다.
답변 페이지 구현 설계 아이디어: 노트 제목을 클릭하면 해당 노트와 해당 답변을 포함한 페이지가 연결될 수 있습니다. 이전 섹션에서 이 작업은 노트 제목의 하이퍼링크에만 이 노트의 코드 매개변수를 전달하면 달성될 수 있음을 알 수 있습니다.
5.2.1 기본 페이지 디자인
(1) bkblog.dwt.aspx 템플릿으로 생성된 새로운 ASP.NET VB 동적 페이지 hf.aspx를 생성하고, 본체 편집 가능 영역에 ztre 테이블을 삽입한 후 관련 디자인을 수행한 결과가 표시됩니다. 그림 5-2-1에서는 다음을 보여줍니다.
그림 5-2-1 테이블 ztre 디자인 다이어그램
(2) Access2003을 시작하고 FH 테이블을 설정하고 YH 테이블 연결 쿼리 HFRE를 실행합니다. 실제로 연결 보기 및 표시 필드는 그림 5-2-2에 나와 있습니다.
그림 5-2-2 HFRE 관련 디자인 쿼리
(3) 섹션 4.2.2 데이터 세트의 (1)-(3) 단계에 따라 데이터 세트 Ztre를 추가하고 필드를 해당 위치로 드래그한 후 동적 텍스트를 수행합니다. (Ztre.ZYTEXT) 형식을 설정하면 결과가 그림 5-2-3에 표시됩니다.
그림 5-2-3 테이블 ztre에 데이터 바인딩
(4) 데이터 세트 Ztre를 필터링하도록 수정하고 필터 필드는 ZTID이며 매개변수 전송 방법으로 "URL 매개변수"를 선택하고 입력 매개변수 변수는 ztanw입니다.
(5) 데이터 세트 Hfre를 추가하고 필터 필드는 ZTID이며 매개변수 전송 방법으로 "URL 매개변수"를 선택하고 입력 매개변수 변수는 ztanw입니다. 결과는 그림 5-2-4에 표시됩니다.
그림 5-2-4 데이터 세트 Hfre의 설계
(6) 데이터 세트 Hfre 필드를 ztre 테이블의 해당 위치로 드래그하고 동적 텍스트(Htre.HFTEXT)의 형식 설정을 "인코딩—HTML 인코딩 형식으로 설정합니다. "를 입력하고 ztre 테이블의 첫 번째 필드를 변경합니다. 5, 6, 7행은 반복 영역으로 정의되고 데이터는 ztre 테이블로 페이징됩니다. 결과는 그림 5-2-5에 나와 있습니다.
그림 5-2-5 Htre 데이터 세트를 ztre 테이블에 바인딩
(7) index.aspx 홈 페이지를 열고 동적 텍스트(Ztre.ZTNAME)를 선택하고 하이퍼링크를 생성하고 hf.aspx에 연결하고 코드로 전환합니다. 속성을 hf.aspx?ztanw=로 변경하고 Ztre 데이터 세트 아래의 ZTID 필드를 등호로 드래그하면 결과는 그림 5-2-6과 같습니다.
그림 5-2-6 코드에 동적 하이퍼링크 추가
(8) hf.aspx 및 index.asps를 저장하고 Access에서 해당 HF 테이블과 YH 테이블에 몇 개의 레코드를 입력한 후 IE 브라우저에서 index.asps를 찾아보고 다음을 클릭합니다. 그림 5-2-7과 같이 응답이 포함된 연구 노트 주제:
그림 5-2-7 응답 페이지 표시
(9) 그런 다음 데이터 세트 탐색에서 하이퍼링크를 클릭하면 그림 5-2-8과 같은 결과가 표시됩니다.
그림 5-2-8 데이터 세트 탐색을 클릭한 후의 페이지 결과
! 모두 사라졌습니다! 이는 ASP.NET 웹 페이지 간의 데이터 전송 문제입니다. 섹션 5.1과 같이 수정해야 합니다.
(10) 코드뷰로 전환하여 <html> 태그 앞에 그림 5-2-9의 빨간색 원 안에 표시된 코드를 삽입합니다.
그림 5-2-9 기본 함수를 로드하기 위해 hf.aspx에 페이지 삽입
(11) Ztre 데이터 세트에서 코드 찾기:
<Parameter Name="@ZTID" Value='<%# IIf((request.QueryString ("ztanw ") <> Nothing), request.QueryString("ztanw"), "") %>' Type="Integer" />
위 코드의 request.QueryString("ztanw")을 session("ztanw"로 교체하세요. "), 결과 코드는
<Parameter Name="@ZTID" Value='<%# IIf((session("ztanw")<> Nothing), session("ztanw"), "") %>'로 수정됩니다. Type="Integer" />
(12) Hfre 데이터 세트에서 코드를 찾습니다:
<Parameter Name="@ZTID" Value='<%# IIf((request.QueryString("ztanw") <> Nothing), request .QueryString("ztanw" ), "") %>' Type="Integer" />
위 코드의 request.QueryString("ztanw")을 session("ztanw")으로 바꾸면 결과 코드는
< Parameter Name="@ZTID" Value= '<%# IIf((session("ztanw")<> Nothing), session("ztanw"), "") %>' Type="Integer" />
(13) hf.aspx를 저장합니다.