Programming/.NET
DataList 컨트롤은 템플릿을 통해 레이아웃과 기타 필요기능을 구성하여 데이터를 화면에 표시하는 컨트롤중 하나입니다.

아래는 DataList 컨트롤에서 추가가능한 템플릿입니다.

 AlternatingItemTemplate  전체 Row 에서 각 Row 를 구분하는 레이아웃을 제공하는 템플릿입니다.
 EditItemTemplate  편집상태일때 나타나는 레이아웃을 지정합니다.
 FooterTemplate  마지막 항목에 대한 레이아웃을 지정합니다.
 HeaderTemplate  첫번째 항목에 대한 레이아웃을 지정합니다.
 ItemTemplate  기본적으로 데이터의 각 항목을 표시하는 기본 레이아웃을 지정합니다.
 SelectedItemTemplate  컨트롤에서 특정 항목이 선택된 상태일때를 나타내는 레이아웃을 정의합니다.
 SeparatorTemplate  각 항목의 아이템을 구분하는 레이아웃을 정의합니다.

상기 템플릿의 대부분은 선택항목이지만 최소한 ItemTemplate 은 기본적으로 구현되어야 합니다. 데이터를 표시하기 위한 가장 기본적인 템플릿이기 때문입니다.
<asp:SqlDataSource ID="SqlDataSource1" runat="server" ConnectionString="<%$ ConnectionStrings:new_connection %>" SelectCommand="SELECT Top 10 * FROM [Person].[PersonPhone]"></asp:SqlDataSource>
<asp:DataList ID="DataList1" runat="server" DataSourceID="SqlDataSource1">
    <ItemTemplate>
        전화번호 : <asp:Label ID="Label1" runat="server" Text='<%# Eval("PhoneNumber"%>' />
    </ItemTemplate>
</asp:DataList>
템플릿 내부는 HTML 요소나 기타 내용을 추가하여 전체적인 디자인을 구성할 수 있습니다. 주목해야 할 부분은 Label 컨트롤 부분인데 데이터 소스로부터 가져온 데이터를 표시하기 위해서 Inline 데이터 바인딩 구문인 Eval 함수를 사용하였습니다.

여기서 ItemTemplate 은 테이블요소를 사용하여 레이아웃을 구성하게 되는데


페이지 디자인구성상 내부요소를 Table 이 아닌 span 요소로 대체하고자 한다면 DataList 의 Repeatlayout 속성을 Flow 로 수정하면 됩니다.

참고로 아래는 ItemTemplate 이외에 AlternatingItemTemplate 등의 다른 템플릿요소를 사용한 예를 보여주고 있습니다.
<asp:DataList ID="DataList1" runat="server" DataSourceID="SqlDataSource1" RepeatLayout="Flow">
    <AlternatingItemTemplate>
        전화번호 : <asp:Label ID="Label1" runat="server" Text='<%# Eval("PhoneNumber"%>' ForeColor="Yellow" />
    </AlternatingItemTemplate>
    <SeparatorTemplate><hr /></SeparatorTemplate>
    <ItemTemplate>
        전화번호 : <asp:Label ID="Label1" runat="server" Text='<%# Eval("PhoneNumber"%>' />
    </ItemTemplate>
</asp:DataList>


위 예제에서 AlternatingItemTemplate 는 ItemTemplate 의 반복요소를 나타내고 있는데 이 템플릿에는 ItemTemplate 과 같은 구성의 내용이 들어가 있음을 볼 수 있습니다. 차이점은 ForeColor 속성을 추가하여 반복적으로 다른 색상이 표시되도록 했다는 것인데 복잡한 요소보다는 색상에 의한 구분처럼 단순한 기능이 필요하다면 AlternatingItemTemplate 보다 AlternatingItemStyle 사용을 권장합니다.

AlternatingItemStyle 은 구분이 필요한 속성만을 추가하여 좀더 간단하고 쉽게 원하는 결과를 이끌어 낼 수 있도록 하지만 문자열, HTML 요소와 같은 정적/동적컨텐츠 삽입은 불가능합니다.

DataList 컨트롤에서는 RepeatColumns 라는 속성도 주목할 필요가 있습니다. DataList 는 본래 하나의 컬럼만을 표시하지만 RepeatColumns 속성을 설정하면 원하는 만큼의 컬럼(Column, 열)을 생성하여 데이터를 화면에 표시할 수 있습니다.
<asp:DataList ID="DataList1" runat="server" DataSourceID="SqlDataSource1" RepeatColumns="2">
    <ItemTemplate>
        전화번호 : <asp:Label ID="Label1" runat="server" Text='<%# Eval("PhoneNumber"%>' />
    </ItemTemplate>
</asp:DataList>
다중 열을 생성하고 데이터를 화면에 표시하면 표시순서가 왼쪽 위에서 아래 순서로 흘러가는것을 볼 수 있는데 이 규칙을 깨려면 RepeatDirection 속성을 사용하면 됩니다. 기본값은 Vertical 이며 horizontal 로 바꾸면 왼쪽 위에서 오른쪽 순으로 표시할 항목이 배열됩니다.

'Programming > .NET' 카테고리의 다른 글

[ASP.NET] Menu  (0) 2016.03.10
[ASP.NET] Calender  (0) 2016.03.07
[ASP.NET] DataList  (0) 2016.03.03
[ASP.NET] XML - 6  (0) 2016.02.23
[ASP.NET] XML - 5  (0) 2016.02.18
[ASP.NET] XML - 4  (0) 2016.02.11
0 0