ASP.NET 웹 양식 - DataList 컨트롤
이 섹션에서는 다음을 소개합니다. ASP.NET DataList 컨트롤은 Repeater 컨트롤보다 더 유연합니다. DataList 컨트롤은 데이터를 테이블 형식으로 표시합니다.Repeater 컨트롤과 유사한 DataList 컨트롤은 컨트롤에 바인딩된 항목의 반복 목록을 표시하는 데 사용됩니다. 그러나 DataList 컨트롤은 기본적으로 데이터 항목에 테이블을 추가합니다.
DataSet을 DataList 컨트롤에 바인딩
Repeater 컨트롤과 유사한 DataList 컨트롤은 컨트롤에 바인딩된 항목의 반복 목록을 표시하는 데 사용됩니다. 그러나 DataList 컨트롤은 기본적으로 데이터 항목에 테이블을 추가합니다. DataList 컨트롤은 데이터베이스 테이블, XML 파일 또는 기타 항목 목록에 바인딩될 수 있습니다. 여기에서는 XML 파일을 DataList 컨트롤에 바인딩하는 방법을 보여줍니다.
이 예에서는 다음 XML 파일("cdcatalog.xml")을 사용합니다.
<?xml version="1.0" 인코딩="ISO-8859-1"?><catalog><cd><title>Empire Burlesque</title><artist>Bob Dylan</artist><country>USA</country ><company>컬럼비아</company><price>10.90</price><year>1985</year></cd><cd><title>마음을 숨겨보세요</title><artist>Bonnie Tyler</artist><country>UK</country><company>CBS Records</company><price>9.90</price><year>1988</year></cd><cd><title>최고의 히트곡 </title><아티스트>돌리 Parton</artist><country>USA</country><company>RCA</company><price>9.90</price><year>1982</year></cd><cd><title>아직도 블루스</title><아티스트>게리 무어</artist><country>UK</country><company>Virgin 기록</company><price>10.20</price><year>1990</year></cd><cd><title>Eros</title><artist>Eros Ramazzotti</artist><country>EU< /국가><회사>BMG</회사><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_Loadif Not Page.IsPostBack ndim mycdcatalog=New DataSetmycdcatalog.ReadXml(MapPath("cdcatalog.xml"))end ifend sub그런 다음 .aspx 페이지에 DataList 컨트롤을 만듭니다. <HeaderTemplate> 요소의 콘텐츠는 먼저 렌더링되어 출력에 한 번만 나타나는 반면, <ItemTemplate> 요소의 콘텐츠는 DataSet의 각 "레코드"에 대해 반복됩니다. 마지막으로 <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의 눈금선 속성을 "both"로 설정할 수 있습니다.
예
<%@ Import Namespace="System.Data" %><script runat="server">sub Page_Loadif Not Page.IsPostBack thenim mycdcatalog=New DataSetmycdcatalog.ReadXml(MapPath("cdcatalog.xml"))cdcatalog.DataSource=mycdcatalogcdcatalog. DataBind()end ifend sub</script><html><body><form runat="server"><asp:DataList id="cdcatalog"gridlines="both" runat="server"><HeaderTemplate>내 CD 카탈로그</HeaderTemplate><ItemTemplate>"<%#Container.DataItem("title" )%>" of<%#Container.DataItem("artist")%> -$<%#Container.DataItem("price")%></ItemTemplate><FooterTemplate>저작권 참조 정보</FooterTemplate></asp:DataList></form></body></html>스타일 사용
DataList 컨트롤에 스타일을 추가하여 출력을 더욱 멋지게 만들 수도 있습니다.
예
<%@ Import Namespace="System.Data" %><script runat="server">sub Page_Loadif Not Page.IsPostBack thenim mycdcatalog=New DataSetmycdcatalog.ReadXml(MapPath("cdcatalog.xml"))cdcatalog.DataSource=mycdcatalogcdcatalog. DataBind()end ifend sub</script><html><body><form runat="서버"><asp:DataList id="cdcatalog"runat="서버"cellpadding="2"cellspacing="2"borderstyle="inset"backcolor="#e8e8e8"headerstyle-font-name="Verdana"headerstyle-font-size="12pt"headerstyle -수평 lalign="center"headerstyle-font-bold="true"itemstyle-backcolor="#778899"itemstyle-forecolor="#ffffff"footerstyle-font-size="9pt"footerstyle-font-italic="true">< 헤더템플릿>내 CD 카탈로그</HeaderTemplate><ItemTemplate>"<%#Container.DataItem("title")%>" of<%#Container.DataItem("artist")%> -$<%#Container.DataItem("price" )%></ItemTemplate><FooterTemplate>저작권헤게 참조</FooterTemplate></asp:DataList></form></body></html><AlternatingItemTemplate> 사용
<ItemTemplate> 요소 뒤에 <AlternatingItemTemplate> 요소를 추가하여 출력에서 교대로 나타나는 행의 모양을 설명할 수 있습니다. DataList 컨트롤 내부의 <AlternatingItemTemplate> 영역에 있는 데이터에 스타일을 추가할 수 있습니다.
예
<%@ Import Namespace="System.Data" %><script runat="server">sub Page_Loadif Not Page.IsPostBack thenim mycdcatalog=New DataSetmycdcatalog.ReadXml(MapPath("cdcatalog.xml"))cdcatalog.DataSource=mycdcatalogcdcatalog. DataBind()end ifend sub</script><html><body><form runat="서버"><asp:DataList id="cdcatalog"runat="서버"cellpadding="2"cellspacing="2"borderstyle="inset"backcolor="#e8e8e8"headerstyle-font-name="Verdana"headerstyle-font-size="12pt"headerstyle -horizontalalign="center"headerstyle-font-bold="Tr ue"itemstyle-backcolor="#778899"itemstyle-forecolor="#ffffff"alternatingitemstyle-backcolor="#e8e8e8"alternatingitemstyle-forecolor="#000000"footerstyle-font-size="9pt"footerstyle-font-italic=" True"><HeaderTemplate>내 CD 카탈로그</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>© Hege Refsnes</FooterTemplate></asp:DataList>< /양식></body></html>