본문 바로가기

Programming/.NET

[ASP.NET] FormView

FormView 는 데이터 소스로부터 하나의 레코드정보를 표시하고 데이터 추가, 편집및 삭제가 가능한 컨트롤로서 DetailsView 와 비슷한 기능을 수행합니다. 하지만 화면에 표시되는 정형화된 레이아웃이 없고 개발자가 직접 템플릿안에서 레이아웃을 구성해야 합니다.

귀찮은 단점이 될 수 있는 반면 완벽하게 레이아웃을 임의로 구성할 수 있다는 점에서 그 만큼 화면구성에 대한 자유로움이 존재합니다.


▶ <그림 1-1>

그림 1-1 은 AdventureWorks2012 샘플데이터베이스의 Person.PersonPhone 테이블에서 하나의 레코드를 표시하기위해 작성된 ItemTemplate 형태를 보여주고 있습니다. ItemTemplate 은 특정 테이블에서 레코드를 표시하기 위한 기본적인 템플릿이며 이 템플릿안에서 레이아웃이 구성되는 것입니다.
<asp:FormView ID="FormView1" runat="server" DataSourceID="SqlDataSource1">
    <ItemTemplate>
        <table border="1">
            <caption>Person Phone</caption>
            <tr>
                <th>BusinessEntityID</th>
                <th>PhoneNumber</th>
                <th>PhoneNumberTypeID</th>
                <th>ModifiedDate</th>
            </tr>
            <tr>
                <td><asp:Label ID="Label1" runat="server" Text='<%# Bind("BusinessEntityID") %>'></asp:Label></td>
                <td><asp:Label ID="Label2" runat="server" Text='<%# Bind("PhoneNumber") %>'></asp:Label></td>
                <td><asp:Label ID="Label3" runat="server" Text='<%# Bind("PhoneNumberTypeID") %>'></asp:Label></td>
                <td><asp:Label ID="Label4" runat="server" Text='<%# Bind("ModifiedDate") %>'></asp:Label></td>
            </tr>
        </table>
    </ItemTemplate>
</asp:FormView>
▶ <코드 1-1>

코드 1-1 은 그림 1-1 에서 ItemTemplate 에 작성된 부분을 보여주고 있으며 임의의 HTML 코드는 물론 심지어 ASP.NET 컨트롤 까지도 포함할 수 있습니다.

이러한 형태로 FormView 에서는 데이터 편집시 보여지는 EditItemTemplate, 데이터 추가시 보여지는 InsertItemTemplate 등을 정의할 수 있고, 그 밖에 Footer 나 Paging, Empty 등에 대한 템플릿도 정의할 수도 있습니다.

태그