웹 양식 데이터 목록
ASP.NET Web Forms - DataList 컨트롤
Repeater 컨트롤과 유사한 DataList 컨트롤은 컨트롤에 바인딩된 항목의 반복 목록을 표시하는 데 사용됩니다. 그러나 DataList 컨트롤은 기본적으로 데이터 항목에 테이블을 추가합니다.
DataList 컨트롤에 DataSet 바인딩
DataList 컨트롤은 Repeater 컨트롤과 유사하며 컨트롤에 바인딩된 항목의 반복 목록을 표시하는 데 사용됩니다. 그러나 DataList 컨트롤은 기본적으로 데이터 항목에 테이블을 추가합니다. DataList 컨트롤은 데이터베이스 테이블, XML 파일 또는 기타 항목 목록에 바인딩될 수 있습니다. 여기에서는 XML 파일을 DataList 컨트롤에 바인딩하는 방법을 보여줍니다.
이 예에서는 다음 XML 파일("cdcatalog.xml")을 사용합니다:
< ;catalog> ;
<cd>
<아티스트>밥 딜런</artist>
<국가>미국</국가>
<회사>콜롬비아</company>
<가격>10.90</price>
<연도>1985</년>
</cd>
<cd>
<title>마음을 숨겨보세요</title>
<아티스트>보니 타일러</artist>
<국가>영국</국가>
<회사>CBS 레코드</company>
<가격>9.90</price>
<연도>1988</년>
</cd>
<cd>
<title>최고의 히트곡</title>
<아티스트>돌리 파튼</artist>
<국가>미국</국가>
<회사>RCA</company>
<가격>9.90</price>
<연도>1982</년>
</cd>
<cd>
<title>아직도 우울함이 남아있습니다</title>
<아티스트>게리 무어</artist>
<국가>영국</국가>
<컴퍼니>버진 레코드</company>
<가격>10.20</price>
<연도>1990</년>
</cd>
<cd>
<title>에로스</title>
<아티스트>에로스 라마조티</artist>
<국가>EU</국가>
<회사>BMG</company>
<가격>9.90</price>
<연도>1997</year>
</cd>
</catalog>
이 XML 파일 보기: cdcatalog.xml
먼저 "System.Data" 네임스페이스를 가져옵니다. DataSet 개체를 사용하려면 이 네임스페이스가 필요합니다. .aspx 페이지 상단에 다음 지시문을 포함합니다.
다음으로 XML 파일에 대한 DataSet을 만들고 처음 로드할 때 로드합니다. 이 XML 파일을 DataSet에 추가합니다.
sub Page_Load
if Not Page.IsPostBack then
희미한 mycdcatalog=새 데이터 세트
mycdcatalog.ReadXml(MapPath("cdcatalog.xml"))
end if
end sub
그런 다음 .aspx 페이지에 DataList 컨트롤을 만듭니다. <HeaderTemplate> 요소의 콘텐츠는 먼저 렌더링되어 출력에 한 번만 나타나는 반면, <ItemTemplate> 요소의 콘텐츠는 DataSet의 각 "레코드"에 대해 반복됩니다. FooterTemplate> 요소의 내용은 출력에 한 번만 나타납니다.
<body>
<form runat="server">
<asp:DataList id="cdcatalog" runat= "서버">
<HeaderTemplate>
...
</HeaderTemplate>
<ItemTemplate>
...
</ItemTemplate>
<FooterTemplate>
...
< /FooterTemplate>
</asp:DataList>
</form>
</body>
</html>
그런 다음 스크립트를 추가하여 DataSet을 생성하고 mycdcatalog DataSet을 데이터리스트 컨트롤. 그 다음에 헤더를 포함하는 <HeaderTemplate>, 표시할 데이터 항목을 포함하는 <FooterTemplate> DataList의 눈금선 속성을 "both"로 설정하여 테이블 테두리를 표시할 수 있습니다.
Example
<%@ 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> <!DOCTYPE html> <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> © Hege Refsnes </FooterTemplate> </asp:DataList> </form> </body> </html>
예제 실행»
온라인 예를 보려면 "예제 실행" 버튼을 클릭하세요
스타일 사용
DataList 컨트롤에 스타일을 추가하여 출력을 더욱 멋지게 만들 수도 있습니다.
Instance
<%@ 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> <!DOCTYPE html> <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> © Hege Refsnes </FooterTemplate> </asp:DataList> </form> </body> </html>
Run Instance»
온라인 예제를 보려면 "인스턴스 실행" 버튼을 클릭하세요.
<AlternatingItemTemplate> 사용
<ItemTemplate> 요소 뒤에 <AlternatingItemTemplate> 요소를 추가하여 출력에서 교대로 나타나는 행의 모양을 설명할 수 있습니다. DataList 컨트롤 내부의 <AlternatingItemTemplate> 영역에 스타일을 추가할 수 있습니다.
Instance
<%@ 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> <!DOCTYPE html> <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> © Hege Refsnes </FooterTemplate> </asp:DataList> </form> </body> </html>
Run Instance »
온라인 인스턴스를 보려면 "인스턴스 실행" 버튼을 클릭하세요