ASP.NET 2.0의 웹파트 프레임워크를 이용하여 커스터마이징 가능한 페이지를 만드는 방법에 대해서 다루어 보겠습니다.


ASP.NET 서버 컨트롤 중에는 사용자로 하여금 페이지의 모양을 커스터마이징 가능하도록 만들어 놓은 특별한 유형의 컨트롤들이 있습니다. 이 들을 웹파트 프레임워크 컨트롤이라고 부르지요.


웹파트 프레임워크 컨트롤에는 다음과 같은 컨트롤들이 있습니다.


- WebPartManager 컨트롤

- Zones 컨트롤

- Editors 컨트롤

- Catalogs 컨트롤

- ConnectionZones 컨트롤


Zones와 Editors, Catalogs 컨트롤은 더 자세하게 컨트롤들로 분류되어 집니다. 이 들에 대해서는 다음에 다루도록 하겠습니다.


- WebPartManager 컨트롤 : 페이지에 이 컨트롤이 들어 있어야 웹파트 컨트롤을 추가할 수 있습니다. 즉 페이지의 커스터마이징 기능을 활성화 시키는 역할을 합니다.


- Zones 컨트롤 : 페이지에서 커스터마이징 가능한 영역(section)을 표시하는 역할을 합니다. Zones 컨트롤 안에 개별 WebPart 컨트롤들을 배치합니다.


Zones 컨트롤의 종류에는 다음의 세 가지가 있습니다.

- WebPartZone

- CatalogZone

- EditorZone


Zones 컨트롤의 종류에 따라 안에 집어 넣을 수 있는 WebPart 컨트롤의 종류도 달라집니다. 이들 또한 다음에 다루도록 하겠습니다. 그냥 각각의 Zone의 성격에 따라 그 안에 들어갈 수 있는 컨트롤도 달라진다는 정도록만 설명하고 넘어가겠습니다.



커스터마이징 가능한 페이지 작성하기

 

그럼 이제 본격적으로 이번 강좌의 목적인 커스터마이징 가능한 페이지를 만들어 보겠습니다.



WebPartManager 컨트롤 페이지에 추가하기


커스터마이징 가능한 페이지 즉 웹파트를 활용하는 페이지를 작성하기 위한 제일 첫 번째 단계는 WebPartManager 컨트롤을 추가하는 것입니다. WebPargManger는 이전에도 설명했듯이 ASP.NET 페이지에 웹파트를 활용할 수 있도록 웹파트 프레임워크의 기능을 활성화 시키는 역할을 합니다.


1. Visual Studio 2005을 실행합니다. 파일, 새로 만들기, 웹 사이트... 메뉴를 선택합니다.



2. 프로젝트의 위치를 지정하고 프로젝트 이름을 지정한 후 확인 버튼을 누릅니다. 여기서는 FirstWebParsSites로 지정했습니다.


3. Default.aspx 페이지를 디자인뷰로 전환하고 도구 상자에서 WebParts 컨트롤 탭을 펼칩니다. WebParts 탭안의 컨트롤 중 WebPartManager 컨트롤을 Defalt.aspx 페이지 위로 드래그 앤 드롭합니다.



WebPartManger 컨트롤을 추가한 후 소스 뷰를 통해 생성된 HTML을 확인해 보면 아래와 같이 <asp:WebPartManger> 요소가 추가됩니다.



<asp:WebPartManager ID="WebPartManager1" runat="server">

</asp:WebPartManager>




Zone 컨트롤 페이지에 추가하기


Zone 컨트롤을 추가하는 목적은 페이지의 커스터마이징은 오직 zone안에서만 일어나기 때문에 커스터마이징이 일어나는 영역과 커스터마이징을 하지 않고 싶은 부분을 구분하기 위한 용도로 사용합니다.


이번 강좌에서는 Zone 컨트롤 중 WebPartZone을 세 개를 화면에 추가해 보도록 하겠습니다.

1. 도구상자에서 WebPartZone 컨트롤 세 개를 드래그 앤 드롭하여 아래와 같이 페이지에 배치합니다. 각각의 WebPartZone 컨트롤의 HeaderText 속성을 “검색”, “자세히 보기”, “리스트”로 설정합니다.




참고 사항 : WebPartZone을 드래그 앤 드롭한 후 각 WebPartZone 컨트롤의 위치를 화면에 위에 마우스로 조정하고 싶다면 컨트롤의 위치 지정방법을 절대위치(absolute position)으로 바꾸어 주어야 합니다. 하나의 WebPartZone 레이아웃, 위치 메뉴에서 절대를 선택하면 마우스로 WebPartZone 컨트롤의 위치를 조정할 수 있게 됩니다.


WebPartZone 컨트롤 세 개를 추가하여 만들어진 결과의 소스는 아래와 같습니다.


<body>

    <form id="form1" runat="server">

    <div>

        <asp:WebPartManager ID="WebPartManager1" runat="server">

        </asp:WebPartManager>

        <br />

        <asp:WebPartZone ID="WebPartZone1" runat="server"
          style="z-index:100; left: 19px; position: absolute; top: 83px"
          HeaderText="검색 Width="125px">

        </asp:WebPartZone>

        <asp:WebPartZone ID="WebPartZone2" runat="server"
         
style="z-index:103; left: 194px; position: absolute; top: 82px"
         
HeaderText="자세히보기 Width="119px">

        </asp:WebPartZone>

        <asp:WebPartZone ID="WebPartZone3" runat="server"
         
style="z-index: 102; left: 360px; position: absolute; top: 82px"
          HeaderText="리스트 Width="128px">

        </asp:WebPartZone>

    </div>

    </form>

</body>


이번 시간에는 여기 까지 하도록 하겠습니다.

아직까지는 브라우저에서 Default.aspx를 실행하더라도 아무것도 나타나지 않습니다.

단, 소스보기를 통해서 HTML 소스를 보면 border가 0인 즉 선이 보이지 않는 테이블이 세 개 만들어지는 데 이 table의 id를 보면 WebPartZone1, WebPartZone2, WebPartZone3라고 되어 있으므로 WebPartZone이 각각의 테이블로 매핑되었음을 알 수 있습니다.



<table ... id="WebPartZone1" ...>

        <tr>

                <td ...><table ...>

                        <tr>

                                <td style="height:100%;"></td>

                        </tr>

                </table></td>

        </tr>

</table>

<table ... id="WebPartZone2" ...>

        <tr>

                <td ...><table ...>

                        <tr>

                                <td style="height:100%;"></td>

                        </tr>

                </table></td>

        </tr>

</table>

<table ... id="WebPartZone3" ...>

        <tr>

                <td ...><table ...>

                        <tr>

                                <td style="height:100%;"></td>

                        </tr>

                </table></td>

        </tr>

</table>


다음 강좌에서는 WebPartZone에 컨트롤을 배치하도로 하겠습니다.

+ Recent posts