ASP.NET 웹 양식 - 반복기 제어
ASP.NETRepeater 컨트롤은 원래 데이터 바인딩 컨트롤입니다. 이 섹션에서는 ASP.NET 데이터 바인딩 작업에서 Repeater 컨트롤의 사용법을 소개합니다.
Repeater 컨트롤은 컨트롤에 바인딩된 항목의 반복 목록을 표시하는 데 사용됩니다.
DataSet을 Repeater 컨트롤에 바인딩
Repeater 컨트롤은 컨트롤에 바인딩된 항목의 반복 목록을 표시하는 데 사용됩니다. 반복기 컨트롤은 데이터베이스 테이블, XML 파일 또는 기타 항목 목록에 바인딩될 수 있습니다. 여기서는 XML 파일을 Repeater 컨트롤에 바인딩하는 방법을 보여줍니다.
이 예에서는 다음 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>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>최고의 히트곡 </title> <artist>돌리 파튼</artist> <country>USA</country> <company>RCA</company> <price>9.90</price> <year>1982</year> </cd> <cd> <title>아직 블루스가 있어요</title> <아티스트>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 희미 mycdcatalog=New DataSet mycdcatalog.ReadXml(MapPath("cdcatalog.xml")) end if end sub그런 다음 .aspx 페이지에 Repeater 컨트롤을 만듭니다. <HeaderTemplate> 요소의 콘텐츠는 먼저 렌더링되어 출력에 한 번만 나타나는 반면, <ItemTemplate> 요소의 콘텐츠는 DataSet의 각 "레코드"에 대해 반복됩니다. 마지막으로 <FooterTemplate> 요소의 콘텐츠는 다음과 같습니다. 출력에 한 번만 나타납니다.
<html> <body> <form runat="server"> <asp:Repeater id="cdcatalog" runat="server"> <HeaderTemplate> ... </HeaderTemplate> <ItemTemplate> ... </ItemTemplate> < FooterTemplate> ... </FooterTemplate> </asp:Repeater> </form> </body> </html>그런 다음 DataSet을 생성하고 mycdcatalog DataSet을 Repeater 컨트롤에 바인딩하는 스크립트를 추가합니다. 그런 다음 HTML 태그를 사용하여 Repeater 컨트롤을 채우고 <%#Container.DataItem("fieldname")%>을 통해 <ItemTemplate> 영역의 셀에 데이터 항목을 바인딩합니다.
예
<%@ Import Namespace="System.Data" %> <script runat="server"> sub Page_Load if Not Page.IsPostBack then 희미 mycdcatalog=New DataSet mycdcatalog.ReadXml(MapPath("cdcatalog.xml")) cdcatalog.DataSource =mycdcatalog cdcatalog.DataBind() end if end sub </script> <html> <body> <form runat="server"> <asp:Repeater id="cdcatalog" runat="server"> <HeaderTemplate> <table> <tr> <th>제목</th> <th>아티스트</th> <th>국가 </th> <th>회사</th> <th>가격</th> <th>연도</th> </tr> </HeaderTemplate> <ItemTemplate> <tr> <td><%#Container.DataItem("title")%></td> <td><%#Container.DataItem("artist")%></td> <td><%#Container.DataItem( "국가")%></td> <td><%#Container.DataItem("회사")%></td> <td><%#Container.DataItem("price")%></td> <td><%#Container.DataItem("year")%></td> </tr> </ItemTemplate> <FooterTemplate > </table> </FooterTemplate> </asp:Repeater> </form> </body> </html>팁: HTML 태그에 대한 지식은 이 사이트의 "HTML 참조 매뉴얼"을 참조하세요!
<AlternatingItemTemplate> 사용
<ItemTemplate> 요소 뒤에 <AlternatingItemTemplate> 요소를 추가하여 출력에서 교대로 나타나는 행의 모양을 설명할 수 있습니다. 아래 예에서는 테이블의 다른 모든 행이 밝은 회색 배경으로 표시됩니다.
예
<%@ Import Namespace="System.Data" %> <script runat="server"> sub Page_Load if Not Page.IsPostBack then 희미 mycdcatalog=New DataSet mycdcatalog.ReadXml(MapPath("cdcatalog.xml")) cdcatalog.DataSource =mycdcatalog cdcatalog.DataBind() end if end sub </script> <html> <body> <form runat="server"> <asp:Repeater id="cdcatalog" runat="server"> <HeaderTemplate> <table> <tr> <th>제목</th> <th>아티스트</th> <th>국가 </th> <th>회사</th> <th>가격</th> <th>연도</th> </tr> </HeaderTemplate> <ItemTemplate> <tr> <td><%#Container.DataItem("title")%></td> <td><%#Container.DataItem("artist")%></td> <td><%#Container.DataItem( "국가")%></td> <td><%#Container.DataItem("회사")%></td> <td><%#Container.DataItem("price")%></td> <td><%#Container.DataItem("year")%></td> </tr> </ItemTemplate> <AlternatingItemTemplate > <tr bgcolor="#e8e8e8"> <td><%#Container.DataItem("title")%></td> <td><%#Container.DataItem("artist")%></td> <td><%#Container.DataItem("country")%></td> <td><%#Container.DataItem( "회사")%></td> <td><%#Container.DataItem("price")%></td> <td><%#Container.DataItem("year")%></td> </tr> </AlternatingItemTemplate> <FooterTemplate> </table> </FooterTemplate> </asp:Repeater> </form> < /본문> </html><SeparatorTemplate> 사용
<SeparatorTemplate> 요소는 각 레코드 간의 구분 기호를 설명하는 데 사용됩니다. 아래 예에서는 각 테이블 행 사이에 수평선이 삽입됩니다.
예
<%@ Import Namespace="System.Data" %> <script runat="server"> sub Page_Load if Not Page.IsPostBack then 희미 mycdcatalog=New DataSet mycdcatalog.ReadXml(MapPath("cdcatalog.xml")) cdcatalog.DataSource =mycdcatalog cdcatalog.DataBind() end if end sub </script> <html> <body> <form runat="server"> <asp:Repeater id="cdcatalog" runat="server"> <HeaderTemplate> <table> <tr> <th>제목</th> <th>아티스트</th> <th>국가 </th> <th>회사</th> <th>가격</th> <th>연도</th> </tr> </HeaderTemplate> <ItemTemplate> <tr> <td><%#Container.DataItem("title")%></td> <td><%#Container.DataItem("artist")%></td> <td><%#Container.DataItem( "국가")%></td> <td><%#Container.DataItem("회사")%></td> <td><%#Container.DataItem("price")%></td> <td><%#Container.DataItem("year")%></td> </tr> </ItemTemplate> <SeparatorTemplate > <tr> <td colspan="6"><hr /></td> </tr> </SeparatorTemplate> <FooterTemplate> </table> </FooterTemplate> </asp:Repeater> </form> </body> </html>위 내용은 ASP.NETRepeater 컨트롤 사용에 대한 소개입니다.