Programming/.NET
BulletedList 는 HTML의 ol 이나 ul 태그에 대응하며 특정 목록을 만들어 주는 컨트롤입니다.
<asp:BulletedList ID="BulletedList1" runat="server">
    <asp:ListItem>자동차</asp:ListItem>
    <asp:ListItem>비행기</asp:ListItem>
    <asp:ListItem>자전거</asp:ListItem>
</asp:BulletedList>
BulletedList 에서의 요소는 ListItem이 사용될 수 있는데 ListBox나 ComboBox 컨트롤에서 사용하는 그것입니다. 그래서 선택된 항목에 대해 별도의 ListItem 개체를 생성하고 인스턴스화 할 수 있으며 또한 특정 데이터 소스로부터 항목리스트를 바인딩하여 처리하는 것도 가능합니다.

<코드 1-1>은 XML 데이터로부터 어떻게 각 항목을 바인딩 할 수 있는지를 보여줍니다.
<Advertisements>
  <Ad NavigateUrl="http://www.naver.com/" AlternateText="네이버"></Ad>
  <Ad NavigateUrl="http://www.daum.net/" AlternateText="다음"></Ad>
  <Ad NavigateUrl="http://www.google.co.kr/" AlternateText="구글"></Ad>
</Advertisements>
위 내용은 소스 대상이 될 XML이며 해당 XML을 데이터소스로 처리하기 위해 XmlDataSource 컨트롤을 사용합니다.
<asp:XmlDataSource ID="XmlDataSource1" runat="server" DataFile="~/sample.xml" XPath="Advertisements/Ad"></asp:XmlDataSource>
XmlDataSouce 에서 DataFile 로 XML파일의 위치를 지정하고 XPath 에 BulletedList 기준에서 각 항목이 될 XML 요소를 지정합니다.
<asp:BulletedList ID="BulletedList1" runat="server" DataSourceID="XmlDataSource1" DataTextField="AlternateText" DataValueField="NavigateUrl" DisplayMode="HyperLink"></asp:BulletedList>
<코드 1-1>

BulletedList 에서는 위에서 만들어진 XmlDataSource의 ID를 DataSourceID 속성에 지정하고 ListItem의 내용으로 DataTextField를, ListItem의 값(Value)으로는 DataValueField 속성을 사용하여 XML요소에 지정한 Ad 속성과 일치시키도록 합니다.

만약 DataTextField 나 DataValueField 가 될 내용이 XML 속성이 아닌 XML의 특정 하위 요소라면 XSLT 변환을 해야 하는데 주제에서 너무 벗어난 얘기가 되므로 일단 생략하고 추후 관련내용을 파악해 볼까 합니다.

 주요속성/이벤트

(1) BulletStyle

이 속성으로 BulletedList 의 각 항목의 앞에 붙여질 기호를 설정합니다. 예를 들어 Numbered 는 번호로 항목의 순서를 표시하며 UpperAlpha 는 대문자 알파벳을 각 항목의 기호로 표시합니다.


(2) BulletImageUrl

기본적으로 제공되는 BulletStyle 에서 딱히 마음에 드는 것이 없다면 값을 CustomImage 로 설정하고 BulletImageUrl 속성에 이미지를 지정하면 항목의 기호로 해당 이미지를 사용할 수 있습니다.
<asp:BulletedList ID="BulletedList1" runat="server" BulletStyle="CustomImage" BulletImageUrl="~/images/12_mon.gif">
    <asp:ListItem>에 자동차 몰기</asp:ListItem>
    <asp:ListItem>에 비행기 타기</asp:ListItem>
    <asp:ListItem>에 자전거 사기</asp:ListItem>
</asp:BulletedList>

(3) FirstBulletNumber

BulletStyle 을 숫자나 알파벳처럼 순서가 정해지는 기호로 설정한 경우 이 속성을 사용해 특정 숫자를 지정하면 해당 숫자와 일치하는 기호부터 항목의 순서가 시작되도록 설정할 수 있습니다.

예를 들어 이 속성의 값을 3으로 지정하고 BulletStyle 이 Numbered 로 지정되었다면 항목은 3부터 시작되며 알파벳이 지정된 경우 C부터 항목의 순서가 시작될 것입니다.

(4) DisplayMode

이 속성의 기본값은 Text 이며 값을 HyperLink 로 바꾸는 경우 각 항목에 a 태그를 붙여 링크형태로 표시하게 됩니다. 이때 링크를 클릭하여 이동하는 페이지는 ListItem의 Value 속성에 지정합니다. 이 속성에 사용된 값은 링크의 href 값과 대응합니다.
<asp:BulletedList ID="BulletedList1" runat="server" DisplayMode="HyperLink">
    <asp:ListItem Value="http://www.naver.com/">네이버</asp:ListItem>
    <asp:ListItem>에 비행기 타기</asp:ListItem>
    <asp:ListItem>에 자전거 사기</asp:ListItem>
</asp:BulletedList>
설정가능한 또 다른 값으로는 LinkButton이 있는데 이 값으로 설정된 경우에는 같은 페이지로 포스백을 호출하게 되고 이 과정에서 어떤 항목을 선택했는지의 여부를 확인할 수 있게 됩니다.
<asp:BulletedList ID="BulletedList1" runat="server" DisplayMode="LinkButton" OnClick="BulletedList1_Click">
    <asp:ListItem>자동차</asp:ListItem>
    <asp:ListItem>비행기</asp:ListItem>
    <asp:ListItem>자전거</asp:ListItem>
</asp:BulletedList>
<코드 1-2>은 DisplayMode 가 LinkButton 으로 설정된 경우 어떻게 선택항목을 가져올 수 있는지 보여줍니다.
protected void BulletedList1_Click(object sender, BulletedListEventArgs e)
{
    Response.Write("선택한 항목" + e.Index.ToString() + "번 " + BulletedList1.Items[e.Index].Text);
}
<코드 1-2>

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

[ASP.NET] Global.aspx  (0) 2014.02.03
[ASP.NET] Chart  (0) 2014.01.27
[ASP.NET] BulletedList  (0) 2014.01.23
[ASP.NET] 서버컨트롤 (Server Controls)  (0) 2014.01.21
[ASP.NET] FileUpload  (2) 2014.01.20
[ASP.NET] DropDownList  (0) 2014.01.16
0 0