ASP.NET - DataList 컨트롤러

Repeater 컨트롤러와 유사하게, 컨트롤러에 제한된 프로젝트의 반복 목록을 표시하는 DataList 컨트롤러. 그러나 DataList 컨트롤러는 기본적으로 데이터 항목에 테이블을 추가합니다.

DataSet을 DataList 컨트롤러에 바인딩

DataList 컨트롤러는 Repeater 컨트롤러와 유사하게, 컨트롤러에 제한된 프로젝트의 반복 목록을 표시하는 데 사용됩니다. 그러나 DataList 컨트롤러는 기본적으로 데이터 항목에 테이블을 추가합니다. DataList 컨트롤러는 데이터 테이블, XML 파일 또는 다른 항목 목록에 바인딩할 수 있습니다. 여기서는 XML 파일을 DataList 컨트롤러에 바인딩하는 방법을 보여드리겠습니다.

아래의 XML 파일("cdcatalog.xml")를 예제에서 사용하겠습니다:

<?xml version="1.0" encoding="ISO-8859-1"?>
<catalog>
<cd>
  <title>Empire Burlesque</title>
  <artist>Bob Dylan</artist>
  <country>USA</country>
  <company>Columbia</company>
  <price>10.90</price>
  <year>1985</year>
</cd>
<cd>
  <title>Hide your heart</title>
  <artist>Bonnie Tyler</artist>
  <country>UK</country>
  <company>CBS Records</company>
  <price>9.90</price>
  <year>1988</year>
</cd>
<cd>
  <title>Greatest Hits</title>
  <artist>Dolly Parton</artist>
  <country>USA</country>
  <company>RCA</company>
  <price>9.90</price>
  <year>1982</year>
</cd>
<cd>
  <title>Still got the blues</title>
  <artist>Gary Moore</artist>
  <country>UK</country>
  <company>Virgin records</company>
  <price>10.20</price>
  <year>1990</year>
</cd>
<cd>
  <title>Eros</title>
  <artist>Eros Ramazzotti</artist>
  <country>EU</country>
  <company>BMG</company>
  <price>9.90</price>
  <year>1997</year>
</cd>
</catalog>

이 XML 파일을 확인해 주세요:cdcatalog.xml

먼저, "System.Data" 이름 공간을 가져옵니다. 이 이름 공간은 DataSet 객체와 함께 작업할 필요가 있습니다. .aspx 페이지의 상단에 다음 지시를 포함합니다:

<%@ Import Namespace="System.Data" %>

다음으로, 이 XML 파일에 DataSet을 생성하고, 페이지가 최초로 로드될 때 이 XML 파일을 DataSet에 로드합니다:

<script runat="server">
sub Page_Load
if Not Page.IsPostBack then
  dim mycdcatalog=New DataSet
  mycdcatalog.ReadXml(MapPath("cdcatalog.xml"))
end if
end sub

그런 다음 .aspx 페이지에서 DataList 컨트롤을 생성합니다. <HeaderTemplate> 요소의 내용은 출력에서 한 번만 나타나고, <ItemTemplate> 요소의 내용은 DataSet의 "record"에 대해 반복적으로 출력되며, 마지막으로, <FooterTemplate>의 내용은 출력에서 한 번만 나타납니다:

<html>
<body>
<form runat="server">
<asp:DataList id="cdcatalog" runat="server">
<HeaderTemplate>
...
</HeaderTemplate>
<ItemTemplate>
...
</ItemTemplate>
<FooterTemplate>
...
</FooterTemplate>
</asp:DataList>
</form>
</body>
</html>

그런 다음 우리는 DataSet을 생성할 수 있는 스크립트를 추가하고 이 mycdcatalog DataSet을 DataList 컨트롤에 바인딩합니다. 우리는 이러한 요소를 사용하여 이 DataList 컨트롤을 채울 것입니다: 테이블 헤더를 포함한 <HeaderTemplate>، 표시할 데이터 항목을 포함한 <ItemTemplate> 및 텍스트를 포함한 <FooterTemplate>입니다. 주의하세요, DataList의 gridlines 속성은 "both"로 설정되어 테이블 경계선을 표시합니다:

<%@ Import Namespace="System.Data" %>
<script runat="server">
sub Page_Load
if Not Page.IsPostBack then
  dim mycdcatalog=New DataSet
  mycdcatalog.ReadXml(MapPath("cdcatalog.xml"))
  cdcatalog.DataSource=mycdcatalog
  cdcatalog.DataBind()
end if
end sub
</script>
<html>
<body>
<form runat="server">
<asp:DataList id="cdcatalog"
gridlines="both" runat="server">
<HeaderTemplate>
My CD Catalog
</HeaderTemplate>
<ItemTemplate>
"<%#Container.DataItem("title")%>" of
<%#Container.DataItem("artist")%> -
$<%#Container.DataItem("price")%>
</ItemTemplate>
<FooterTemplate>
저작권 codew3c.com
</FooterTemplate>
</asp:DataList>
</form>
</body>
</html>

이 예제를 표시합니다

스타일 사용

또한 DataList 컨트롤에 스타일을 추가하여 더욱 시크하게 만들 수 있습니다:

<%@ Import Namespace="System.Data" %>
<script runat="server">
sub Page_Load
if Not Page.IsPostBack then
  dim mycdcatalog=New DataSet
  mycdcatalog.ReadXml(MapPath("cdcatalog.xml"))
  cdcatalog.DataSource=mycdcatalog
  cdcatalog.DataBind()
end if
end sub
</script>
<html>
<body>
<form runat="server">
<asp:DataList id="cdcatalog"
runat="server"
cellpadding="2"
cellspacing="2"
borderstyle="inset"
backcolor="#e8e8e8"
width="100%"
headerstyle-font-name="Verdana"
headerstyle-font-size="12pt"
headerstyle-horizontalalign="center"
headerstyle-font-bold="true"
itemstyle-backcolor="#778899"
itemstyle-forecolor="#ffffff"
footerstyle-font-size="9pt"
footerstyle-font-italic="true"
<HeaderTemplate>
My CD Catalog
</HeaderTemplate>
<ItemTemplate>
"<%#Container.DataItem("title")%>" of
<%#Container.DataItem("artist")%> -
$<%#Container.DataItem("price")%>
</ItemTemplate>
<FooterTemplate>
저작권 codew3c.com
</FooterTemplate>
</asp:DataList>
</form>
</body>
</html>

이 예제를 표시합니다

사용할 수 있는 <AlternatingItemTemplate>

당신은 <ItemTemplate> 요소 뒤에 <AlternatingItemTemplate> 요소를 추가할 수 있습니다. 이렇게 하면 대체 행의 외관을 설명할 수 있습니다. DataList 컨트롤 내에서 <AlternatingItemTemplate> 부분의 데이터를 스타일링할 수 있습니다:

<%@ Import Namespace="System.Data" %>
<script runat="server">
sub Page_Load
if Not Page.IsPostBack then
dim mycdcatalog=New DataSet
mycdcatalog.ReadXml(MapPath("cdcatalog.xml"))
cdcatalog.DataSource=mycdcatalog
cdcatalog.DataBind()
end if
end sub
</script>
<html>
<body>
<form runat="server">
<asp:DataList id="cdcatalog"
runat="server"
cellpadding="2"
cellspacing="2"
borderstyle="inset"
backcolor="#e8e8e8"
width="100%"
headerstyle-font-name="Verdana"
headerstyle-font-size="12pt"
headerstyle-horizontalalign="center"
headerstyle-font-bold="True"
itemstyle-backcolor="#778899"
itemstyle-forecolor="#ffffff"
alternatingitemstyle-backcolor="#e8e8e8"
alternatingitemstyle-forecolor="#000000"
footerstyle-font-size="9pt"
footerstyle-font-italic="True">
<HeaderTemplate>
My CD Catalog
</HeaderTemplate>
<ItemTemplate>
"<%#Container.DataItem("title")%>" of
<%#Container.DataItem("artist")%> -
$<%#Container.DataItem("price")%>
</ItemTemplate>
<AlternatingItemTemplate>
"<%#Container.DataItem("title")%>" of
<%#Container.DataItem("artist")%> -
$<%#Container.DataItem("price")%>
</AlternatingItemTemplate>
<FooterTemplate>
© codew3c.com
</FooterTemplate>
</asp:DataList>
</form>
</body>
</html>

이 예제를 표시합니다