2. 서버 비헤이비어(Server Behaviors)
드림위버MX의 서버 비헤이비어는 데이터베이스에서 원하는 정보를 레코드세트로 등록, 레코드세트를 반복하여 표시하거나, 테이블로 레코드세트 반복 표시하기, 다이나믹 텍스트, 페이지 네비게이션, 페이지 수 표시, 데이터베이스 테이블에서 양식문서 만들기, 데이터베이스 필드 데이터 삽입, 업데이트 등 프로그램으로 웹 어플리케이션 작업에서 자주 사용하게 되는 부분을 비주얼하게 작업할 수 있도록 하며 ASP, JSP, PHP, ColdFusion의 코드작성을 자동으로 생성해 줍니다.
따라서 디자이너도 별다른 프로그램 지식 없이도 게시판, 방명록, 쇼핑몰 등 다양한 데이터베이스 연동 작업을 할 수 있습니다.
서버 비헤이비어의 사용은 오브젝트 삽입 윈도우의 Application 탭을 선택하거나 Application 그룹 패널의 Server Behaviors 탭을 선택하여 서버 비헤이비어를 페이지 내에 작성하실 수 있습니다.


serverbeh0_01.png
[1] 어플리케이션 오브젝트 삽입 막대


serverbeh0_01.png
[2] 서버 비헤이비어 목록
[a] ‘+’버튼
서버 비헤이비어를 추가합니다
[b] ‘-‘ 버튼
설정된 서버 비헤이비어를 제거합니다.
[c] 사용된 서버 비헤이비어 목록 창

참고
서버 비헤이비어와 어플리케이션 오브젝트 삽입 막대는 약간의 차이가 있습니다. 어플리케이션 오브젝트 삽입쪽에는 다이나믹 페이지 작성을 위해 서버 비헤이비어의 조합들이 있습니다.
 
2-1. 영역 반복(Repeat Region)
반복 영역은 레코드세트에서 작성한 다이나믹 요소(이미지, 텍스트, 멀티미디어, 링크)등을 하나의 화면에 배치하여 지정한 회수만큼 데이터베이스에서 꺼내오게 됩니다.
게시판, 쇼핑몰 상품 목록, 등 대부분의 다이나믹 웹 사이트에서 사용하는 기본 기능입니다.

1) 영역 반복 다이나믹 요소 선택
다이나믹 텍스트, 이미지, 등의 요소를 표로 레이아웃을 잡고 반복할 영역을 선택합니다. 드래그앤 드롭으로 표 내부의 행을 선택하거나 태그 선택자에서 <tr>을 선택하여 표의 행을 추가합니다.


serverbeh0_03.png
[1] 다이나믹 텍스트, 링크, 이미지 요소를 표 안에 배치


serverbeh0_04.png
[2] 드래그하여 표 행<tr>태그 선택

2) 서버 비헤이비어 영역 반복(Repeat Region) 실행
오브젝트 삽입 윈도우의 Application 탭을 선택하거나 Application 그룹 패널의 Server Behaviors 탭을 선택하여 서버 비헤이비어를 영역 반복(Repeat Region)을 실행합니다
페이지 내에 작성하실 수 있습니다.
 
serverbeh0_05.png
[3] 영역 반복 버튼 클릭
 
serverbeh0_06.png
[4] 한번에 레코드 10개의 반복하여 표시 설정
[a] 레코드세트(Recordset)
영역 반복할 레코드세트를 선택합니다.
[b] 레코드 표시 (Show Records)
한번에 10개의 레코드 표시, 전체 레코드(All Record)중 하나를 선택합니다.


3) 라이브데이터로 영역 반복(Repeat Region) 실행결과 확인
디자인 보기에서 라이브데이터 보기(Live Data View)상태로 전환하여 영역 반복된 결과를 확인합니다. 표의 행이 추가되어 화면에 10회 반복된 데이터를 출력하게 됩니다.


serverbeh0_07.png
[5] 영역 반복 서버 비헤이비어가 적용된 결과 Repeat 탭이 표시됩니다.
참조
반복할 영역은 테이블, 레이어 등 다양한 HTML디자인 요소에 사용할 수 있습니다.


serverbeh0_08.png
[6] 10회 반복된 결과

4) 서버 비헤이비어 수정
서버 비헤이비어에서 설정한 영역 반복(Repeat Region)의 내용을 변경하려면 서버 비헤이비어 목록에서 Repeat Region를 이중 클릭하여 영역 반복 대화상자에서 수정을 하거나 선택 후 속성(Properties) 검사자에서 변경할 내용을 수정합니다.


serverbeh0_09.png
[7] Repeat Region 선택


serverbeh0_10.png
[8] 속성 변경

2-2. 레코드세트 네비게이션 막대(Recordset Navigation Bar)
레코드세트 네비게이션 막대는 레코드세트의 페이지 이동을 가능하게 합니다. 처음(First), 이전(Previous), 다음(Next), 마지막(Last) 4가지 이동기능을 제공합니다. 네비게이션을 만들기 위해서는 레코드세트와 다이나믹 컨텐츠가 삽입되어 있어야 합니다.
오브젝트 삽입 윈도우 Application탭을 선택하여 레코드세트 네비게이션 막대 단축 아이콘을 클릭하여 실행, 삽입할 레코드세트와 표시할 형식을 이미지, 텍스트 중 하나를 선택합니다.
 
serverbeh0_11.png
[1] 레코드세트 단축 아이콘


serverbeh0_12.png
[2] 레코드세트, 표시 형식 선택
[a] 레코드세트(Recordset)
미리 화면상에 배치된 다이나믹 컨텐츠의 레코드세트를 설정합니다.
[b] 표시형식 선택
네비게이션 막대의 표시형식을 텍스트(Text), 이미지(Images)로 둘 중 하나를 선택합니다.


serverbeh0_13.png
[3] 텍스트 표시 형식으로 설정된 레코드 네비게이션 막대
[4] 이미지 표시 형식으로 설정된 레코드 네비게이션 막대

2-3. 레코드세트 페이징(Recordset Paging)
레코드세트 네비게이션의 First, Previous, Next, Last 같은 레코드 페이지 이동명령은 서버 비헤이비어 레코드세트 페이징의 기능을 모아 놓은 것입니다.
서버 비헤이비어 Recordset Paging>Specific Record는 URL매개변수를 받아 레코드세트의 컬럼을 표시할 수 있습니다.

참고
 
serverbeh0_14.png
[1] 레코드세트 페이징 선택
[a] 처음 페이지로 이동(Move To First Record)
<%=MM_moveFirst%> 코드를 삽입합니다.
[b] 이전 페이지로 이동 (Move To Previous Record)
<%=MM_movePrev%> 코드를 삽입합니다.
[c] 다음 페이지로 이동 (Move To Next Record)
<%=MM_moveNext%> 코드를 삽입합니다.
[d] 마지막 페이지로 이동 (Move To Last Record)
<%=MM_moveLast%> 코드를 삽입합니다.


serverbeh0_15.png
[a] 레코드세트의 레코드로 이동(Move To Record In)
[b] 컬럼의 (Where Column)
선택한 레코드세트의 테이블 컬럼의 페이지로 이동합니다.
[c] URL매개변수에 맞는(Matches URL Parameter)
a.asp?id=5 와 같이 URL매개변수로 전달받은 변수의 값으로 이동합니다.

참고
정해진 페이지로 이동(Move To Specific Record)하는 경우는 게시판의 검색된 페이지에서 목차로 되돌아 가거나 해당 페이지로 갈 때 사용할 수 있습니다.

2-4. 영역 보기(Show Region)
영역 반복처럼 네비게이션 막대에도 Show If… 이라는 탭이 생성됩니다. 이 생성된 내용은 페이지의 위치에 따라 IF문으로 레코드세트의 유무에 따라 링크를 표시할지 안할지를 결정합니다. 서버 비헤이비어 Show Region의 기능을 사용한 것으로 레코드세트의 내용이 없을 때, 있을때, 처음 레코드였을 때, 아닐 때, 마지막 레코드였을 때, 아닐 때의 경우에 대한 컨텐츠 표시형식을 설정합니다.


serverbeh0_16.png
[1] Show If 명령으로 구성된 네비게이션 막대


serverbeh0_17.png

[a] 레코드셋이 없을 때 선택영역을 표시합니다.(Show Region If Recordset Is Empty)
[b] 레코드셋이 있을 때 선택영역을 표시합니다.(Show Region If Recordset Is Not Empty)
[c] 처음 레코드면 선택영역을 표시합니다.(Show Region If First Record)
[d] 처음 레코드가 아니면 선택영역을 표시합니다.(Show Region If Not First Record)
[e] 마지막 레코드면 선택영역을 표시합니다.(Show Region If Last Record)
[f] 마지막 레코드가 아니면 선택영역을 표시합니다.(Show Region If Not Last Record)


serverbeh0_18.png
[2] 레코드세트 선택

참고
영역 보기기능은 레코드세트의 페이지 이동할 때 버튼 링크나 표시하지 않아도 될 컨텐츠를 감출 때 사용합니다.


serverbeh0_19.png
[3] 첫 페이지에서 처음 페이지, 이전 페이지 링크, 아이콘이 표시되지 않는 결과


serverbeh0_20.png
[4] 실제 페이지에서 마지막, 처음 페이지가 아닐 때 모든 네비게이션 막대가 표시되는 결과

2-5. 레코드세트 네비게이션 상태(Recordset Navigation Status)
레코드 네비게이션 상태는 전체 레코드와 현재 페이지의 레코드 시작, 마지막, 총 레코드 수를 화면에 표시합니다. 레코드세트 등록시 바인딩 패널에 자동으로 삽입되는 First Record index, Last Record Index, Total Record Index를 막대로 그룹화한 것으로 한글로 바꿔도 상관없습니다.
오브젝트 삽입 윈도우 Application탭을 선택하여 레코드세트 네비게이션 상태 단축 아이콘을 클릭하여 실행, 삽입할 레코드세트를 선택합니다.


serverbeh0_21.png
[1] 레코드세트 네비게이션 상태 단축 아이콘
 
serverbeh0_22.png
[2] Recordset 선택


serverbeh0_23.png
[3] Records {Recordset1_first} to { Recordset1_last} of { Recordset1_total} 로 표시

참고
게시물 번호는 다이나믹 텍스트이기 때문에 드래그앤 드롭으로 새롭게 배치하여 사용할 수 있습니다. ‘총 레코드 수 {Recordset1_total}중 {Recordset1_first}에서 {Recordset1_last}까지’와 같이 한글로 표시할 수 있습니다.


serverbeh0_24.png
[a] first record index
처음 레코드 수를 반환합니다. <%=(Recordset1_first)%>로 사용
[b] last record index
마지막 레코드 수를 반환합니다. <%=(Recordset1_last)%>로 사용
[c] total record index
전체 레코드 수를 반환합니다. <%=(Recordset1_total)%>로 사용


serverbeh0_25.png
[4] 한글로 수정한 결과
총 레코드 수 16 중 1 에서 5 까지로 표시

2-6. 다이나믹 표(Dynamic Table)
다이나믹 표는 레코드세트에 등록된 데이터베이스 컬럼을 일일히 다이나믹 텍스트로 레이아웃을 만들 필요없이 표로 자동 생성해주는 기능을 합니다. 특정 컬럼만 표로 출력하기 위해서는 레코드세트를 별도로 등록합니다.
오브젝트 삽입 윈도우 Application탭을 선택하여 다이나믹 표 단축 아이콘을 클릭하여 실행, 표를 만들 레코드세트, 반복 횟수 표의 형태를 설정합니다.


serverbeh0_26.png
[1] 표로 작성할 컬럼 선택
serverbeh0_27.png
 
serverbeh0_28.png
[2] 다이나믹 표 단축 아이콘 클릭


serverbeh0_29.png
[3] 표, 반복 영역, 디자인 설정
[a] 레코드세트(Recordset)
표를 생성할 레코드세트를 선택합니다.
[b] 레코드 표시 (Show Records)
한번에 몇개의 레코드 표시(Show Record at a Time), 전체 레코드(All Record)중 하나를 선택합니다.
[c] 테두리(border)
표의 테두리로 픽셀 단위로 설정하며 밝고 어두운 부분에 색상을 설정할 수 있습니다.
[d] 셀 여백(Cell Padding)
셀과 셀 내의 각종 요소와의 여백을 픽셀 단위로 설정합니다.
[e] 셀 간격(Cell Spacing)
셀과 셀 사이의 간격을 픽셀 단위로 설정합니다.


serverbeh0_30.png
[4] 자동으로 레코드세트의 컬럼이 표와 다이나믹 텍스트가 생성된 결과
 
serverbeh0_31.png
[5] 반복 5회로 표 생성 확인

참고
표 작성 이후에 디자인작업에 불필요한 표 열을 제거할 수 있습니다.