Repeater 웹 서버 컨트롤 선언 구문
업데이트: 2007년 11월
목록에 표시된 각 항목에 대해 지정된 템플릿을 반복 사용하여 레이아웃을 사용자 지정할 수 있는 데이터 바인딩된 목록 컨트롤을 만드는 데 사용합니다.
<asp:Repeater
DataMember="string"
DataSource="string"
DataSourceID="string"
EnableTheming="True|False"
EnableViewState="True|False"
ID="string"
OnDataBinding="DataBinding event handler"
OnDisposed="Disposed event handler"
OnInit="Init event handler"
OnItemCommand="ItemCommand event handler"
OnItemCreated="ItemCreated event handler"
OnItemDataBound="ItemDataBound event handler"
OnLoad="Load event handler"
OnPreRender="PreRender event handler"
OnUnload="Unload event handler"
runat="server"
Visible="True|False"
>
<AlternatingItemTemplate>
<!-- child controls -->
</AlternatingItemTemplate>
<FooterTemplate>
<!-- child controls -->
</FooterTemplate>
<HeaderTemplate>
<!-- child controls -->
</HeaderTemplate>
<ItemTemplate>
<!-- child controls -->
</ItemTemplate>
<SeparatorTemplate>
<!-- child controls -->
</SeparatorTemplate>
</asp:Repeater>
설명
Repeater 컨트롤을 사용하면 데이터 바인딩된 기본 템플릿 기반 목록을 만들 수 있습니다. Repeater 컨트롤에는 기본으로 제공되는 레이아웃이나 스타일이 없으므로 컨트롤의 템플릿 내에서 모든 HTML 레이아웃, 서식 및 스타일 태그를 명시적으로 선언해야 합니다.
Repeater 컨트롤을 사용하면 템플릿에 HTML 조각을 추가할 수 있다는 점에서 다른 데이터 목록 컨트롤과 다릅니다. 따라서 표와 같은 복잡한 HTML 구조를 만들 수 있습니다. 예를 들어 HTML 표에 목록을 만들려면 먼저 HeaderTemplate에 <table> 태그를 추가하여 표를 시작합니다. 그런 다음 <tr> 태그, <td> 태그 및 데이터 바인딩된 항목을 ItemTemplate에 추가하여 표의 행과 열을 만듭니다. 표에서 교대로 반복되는 항목에 대해 서로 다른 모양을 지정하려면 ItemTemplate과 내용은 같지만 스타일을 다르게 지정하여AlternatingItemTemplate을 만듭니다. 마지막으로 FooterTemplate에 </table> 태그를 추가하여 표를 완성합니다.
다음 표에서는 Repeater 컨트롤의 다양한 템플릿을 보여 줍니다.
템플릿 |
설명 |
---|---|
ItemTemplate 요소와 비슷하지만 Repeater 컨트롤에서 하나씩 건너뛰어 교대로 반복되는 행에 대해 렌더링됩니다. 이 템플릿의 스타일 속성을 설정하여 AlternatingItemTemplate 요소의 모양을 다르게 지정할 수 있습니다. |
|
모든 데이터 바인딩된 행이 렌더링된 후 한 번 렌더링되는 요소입니다. 대개 HeaderTemplate 항목에서 열려 있는 요소를 </table>과 같은 태그를 지정하여 닫는 데 사용합니다. 참고 FooterTemplate에서는 데이터를 바인딩할 수 없습니다. |
|
데이터 바인딩된 행이 렌더링되기 전에 한 번 렌더링되는 요소입니다. 대개 표와 같은 컨테이너 요소를 시작하는 데 사용합니다. 참고 HeaderTemplate 항목에서는 데이터를 바인딩할 수 없습니다. |
|
데이터 소스의 각 행에 대해 한 번 렌더링되는 요소입니다. ItemTemplate에 데이터를 표시하려면 하나 이상의 웹 서버 컨트롤을 선언하고 Repeater 컨트롤, 즉 컨테이너 컨트롤의 DataSource에 있는 필드를 평가하도록 데이터 바인딩 식을 설정합니다. 다음 예제에서는 이름이 포함된 필드를 Label 컨트롤에 표시하는 선언 샘플을 보여 줍니다.
|
|
대개 줄 바꿈(<br> 태그), 가로줄(<hr> 태그) 등과 같이 각 행 사이에 렌더링되는 요소입니다. 참고 SeparatorTemplate 항목에서는 데이터를 바인딩할 수 없습니다. |
Repeater 컨트롤에는 선택 또는 편집 기능이 기본으로 제공되어 있지 않습니다. 컨트롤의 ItemCommand 이벤트에 대한 처리기를 만들어 템플릿에서 컨트롤로 전달되는 컨트롤 이벤트를 처리할 수 있습니다.
컨트롤은 해당 컨트롤의 DataSource 또는 DataSourceID 속성에서 참조되는 데이터 구조에 Item 및 AlternatingItem 템플릿을 바인딩합니다. Header, Footer 및 Separator 템플릿은 데이터에 바인딩할 수 없습니다. Repeater 컨트롤의 DataSource 속성을 설정했지만 데이터가 반환되지 않는 경우, 컨트롤은 항목이 없는 Header 및 Footer 템플릿을 렌더링합니다. DataSource 속성을 설정하지 않으면 Repeater 컨트롤이 렌더링되지 않습니다.
경고
텍스트는 Repeater 컨트롤에 표시된 후에 HTML로 인코딩됩니다. 따라서 텍스트의 HTML 태그 내에 스크립트를 포함시킬 수 있습니다. 컨트롤 값을 사용자 입력에서 가져온 경우 값이 유효한지 확인하여 보안상의 허점을 방지합니다.
Repeater 웹 서버 컨트롤의 속성과 이벤트에 대한 자세한 내용은 Repeater 클래스 설명서를 참조하십시오.
예제
다음 코드 예제에서는 DataSourceID 속성을 사용하여 Repeater 컨트롤에 데이터 소스를 지정하는 방법을 보여 줍니다. DataSourceID 속성은 데이터를 검색하는 데 사용되는 SqlDataSource 컨트롤의 ID 속성으로 설정됩니다. 페이지가 로드되면 SqlDataSource 컨트롤에 지정된 데이터 소스에 Repeater 컨트롤이 자동으로 바인딩되고 사용자에게 데이터가 표시됩니다.
<%@ Page Language="VB" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" >
<head>
<title>Repeater.DataSourceID Property Example</title>
</head>
<body>
<form id="Form1" runat="server">
<h3>Repeater.DataSourceID Property Example</h3>
<asp:repeater id="Repeater1"
datasourceid="SqlDataSource1"
runat="server">
<headertemplate>
<table border="1">
<tr>
<td><b>Product ID</b></td>
<td><b>Product Name</b></td>
</tr>
</headertemplate>
<itemtemplate>
<tr>
<td> <%# Eval("ProductID") %> </td>
<td> <%# Eval("ProductName") %> </td>
</tr>
</itemtemplate>
<footertemplate>
</table>
</footertemplate>
</asp:repeater>
<asp:sqldatasource id="SqlDataSource1"
connectionstring="<%$ ConnectionStrings:NorthWindConnection%>"
selectcommand="SELECT ProductID, ProductName FROM [Products] Where ProductID <= 10"
runat="server">
</asp:sqldatasource>
</form>
</body>
</html>
<%@ page language="C#" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" >
<head>
<title>Repeater.DataSourceID Property Example</title>
</head>
<body>
<form id="Form1" runat="server">
<h3>Repeater.DataSourceID Property Example</h3>
<asp:repeater id="Repeater1"
datasourceid="SqlDataSource1"
runat="server">
<headertemplate>
<table border="1">
<tr>
<td><b>Product ID</b></td>
<td><b>Product Name</b></td>
</tr>
</headertemplate>
<itemtemplate>
<tr>
<td> <%# Eval("ProductID") %> </td>
<td> <%# Eval("ProductName") %> </td>
</tr>
</itemtemplate>
<footertemplate>
</table>
</footertemplate>
</asp:repeater>
<asp:sqldatasource id="SqlDataSource1"
connectionstring="<%$ ConnectionStrings:NorthWindConnection%>"
selectcommand="SELECT ProductID, ProductName FROM [Products] Where ProductID <= 10"
runat="server">
</asp:sqldatasource>
</form>
</body>
</html>