현재 오프라인 상태입니다. 인터넷에 다시 연결하기를 기다리고 있습니다.

이 브라우저는 지원되지 않습니다.

사이트를 사용하여 브라우저를 업데이트해야 합니다.

최신 버전의 Internet Explorer를 업데이트하세요.

중첩 된 Repeater 컨트롤과 Visual C#를 사용 하 여 계층적 데이터를 표시 하는 방법NET

이 문서는 이전에 다음 ID로 출판되었음: KR306154
중요: 본 문서는 전문 번역가가 번역한 것이 아니라 Microsoft 기계 번역 소프트웨어로 번역한 것입니다. Microsoft는 번역가가 번역한 문서 및 기계 번역된 문서를 모두 제공하므로 Microsoft 기술 자료에 있는 모든 문서를 한글로 접할 수 있습니다. 그러나 기계 번역 문서가 항상 완벽한 것은 아닙니다. 따라서 기계 번역 문서에는 마치 외국인이 한국어로 말할 때 실수를 하는 것처럼 어휘, 구문 또는 문법에 오류가 있을 수 있습니다. Microsoft는 내용상의 오역 또는 Microsoft 고객이 이러한 오역을 사용함으로써 발생하는 부 정확성, 오류 또는 손해에 대해 책임을 지지 않습니다. Microsoft는 이러한 문제를 해결하기 위해 기계 번역 소프트웨어를 자주 업데이트하고 있습니다.

이 문서의 영문 버전 보기:306154

Microsoft Visual Basic 대 한.NET이 버전은 문서, 참조 하십시오 326338.

이 문서를 참조합니다. 다음 Microsoft에 합니다.NET Framework 클래스 라이브러리 네임 스페이스:
  • System.Data
  • System.Data.SqlClient

이 작업의

요약
이 문서에서는 중첩 된 Repeater 컨트롤을 사용 하 여 계층적 데이터를 표시 하는 방법을 설명 합니다. 이 개념을 적용할 수 있습니다. 다른 목록 바운드 컨트롤에.


부모 테이블에 바인딩

  1. Microsoft Visual Studio 시작 합니다.NET입니다.
  2. 파일 메뉴에서 새로 만들기가리킨 및 다음 프로젝트를 클릭 합니다.
  3. 프로젝트 형식Visual C# 프로젝트 를 클릭합니다 한 다음 클릭 ASP입니다.Net 응용 프로그램템플릿.
  4. 위치 상자에는 웹 응용 프로그램 삭제#및 다음 입력 NestedRepeater. 로컬 서버를 사용 하는 경우 서버 이름을 http://localhost로 그대로 둡니다. 다음 경로가 위치 상자에 나타납니다.
    http://localhost/ NestedRepeater
    확인을 클릭 합니다.
  5. 솔루션 탐색기에서 NestedRepeater 프로젝트 이름 노드를 마우스 오른쪽 단추로 클릭 하 고 추가가리킨 다음 Web Form 추가클릭 합니다.
  6. Web Form의 이름을 입력 합니다.NestedRepeater를 클릭 하 고 열기를 클릭 합니다.
  7. 새 Web Form이 만들어집니다. 디자인 보기에서 열을 통합된 개발 환경 (IDE)의 Microsoft Visual Studio.NET입니다. 에서 도구 상자에서 Repeater 컨트롤을 선택 하 고 Web Form 페이지로 끕니다.
  8. Repeater 컨트롤의 ID 속성을 변경 합니다. parentRepeater.
  9. 이 Web Form의 HTML 보기로 전환 합니다. 이렇게 하려면 클릭 합니다. HTML 디자이너의 왼쪽 아래 모서리에 탭입니다. 다음 HTML 코드를 Repeater 컨트롤 생성 됩니다.
    <asp:Repeater id="parentRepeater" runat="server"></asp:Repeater>					
  10. Repeater 태그에 다음 코드를 추가 합니다.
    <itemtemplate>     <b><%# DataBinder.Eval(Container.DataItem, "au_id") %></b><br></itemtemplate>					
    그 후 Repeater 의 HTML 코드는 다음과 같습니다.
    <asp:Repeater id="parentRepeater" runat="server">	<itemtemplate>	     <b><%# DataBinder.Eval(Container.DataItem, "au_id") %></b><br>	      </itemtemplate></asp:Repeater>					
  11. 솔루션 탐색기 추가, 마우스 오른쪽 단추로 누른 다음 NestedRepeater.aspx.cs 코드 숨김에 전환 하는 코드 보기 파일입니다.
  12. 위쪽에 다음 네임 스페이스 선언을 추가 파일:
    using System.Data;using System.Data.SqlClient;					
  13. Pubs 데이터베이스에 연결을 만들려면 Page_Load 이벤트에 다음 코드를 추가 다음 Authors 테이블을 Repeater 컨트롤에 바인딩합니다.
          public void Page_Load(object sender, EventArgs e)      {         //Create the connection and DataAdapter for the Authors table.         SqlConnection cnn = new SqlConnection("server=(local);database=pubs; Integrated Security=SSPI");         SqlDataAdapter cmd1 = new SqlDataAdapter("select * from authors",cnn);         //Create and fill the DataSet.         DataSet ds = new DataSet();         cmd1.Fill(ds,"authors");         //Insert code in step 4 of the next section here.         //Bind the Authors table to the parent Repeater control, and call DataBind.         parentRepeater.DataSource = ds.Tables["authors"];         Page.DataBind();         //Close the connection.         cnn.Close();       }					
    참고: 데이터베이스 연결 문자열을 수정 해야 할 경우 사용자 환경에 적합 합니다.

  14. 모든 파일을 저장 합니다.
  15. 에서 솔루션 탐색기마우스 오른쪽을 에 추가 클릭 하 고 시작 페이지 설정.
  16. 빌드 메뉴에서 프로젝트 컴파일하려면 솔루션 빌드 를 클릭 합니다.
  17. 브라우저에서.aspx 페이지를 보고 하 고 사항을 확인합니다 페이지가 지금까지 작동 합니다.

    출력은 다음과 같이 나타나야 합니다.
    • 172-32-1176
    • 213-46-8915
    • 238-95-7766
    • 267-41-2394
    • ...

자식 테이블에 바인딩

  1. 에 추가 페이지의 HTML 보기에서 찾기 코드의 다음 줄:
    <b><%# DataBinder.Eval(Container.DataItem, "au_id") %></b><br>						
    이 코드 뒤에 다음 코드를 추가 합니다.
    <asp:repeater id="childRepeater" runat="server">		<itemtemplate>	            <%# DataBinder.Eval(Container.DataItem, "[\"title_id\"]")%><br>		</itemtemplate></asp:repeater>						
    이 새 코드 두 번째 Repeater 컨트롤 Repeater 컨트롤 부모의 ItemTemplate 속성을 추가합니다.
  2. DataSource 속성 자식 Repeater 컨트롤에 대해 다음과 같이 설정 합니다.
    <asp:repeater ... datasource='<%# ((DataRowView)Container.DataItem)      .Row.GetChildRows("myrelation") %>' >					
    (상위 및 하위) 두 Repeater 컨트롤에 대 한 HTML 코드는 다음과 같은 자식 Repeater 컨트롤의 DataSource 속성을 설정 하 고 나면 나타납니다.
    <asp:Repeater id="parentRepeater" runat="server">	<itemtemplate>		<b>		 <%# DataBinder.Eval(Container.DataItem, "au_id") %>		</b>		<br>		<asp:repeater id="childRepeater" runat="server"                     datasource='<%# ((DataRowView)Container.DataItem)      .Row.GetChildRows("myrelation") %>' >			<itemtemplate>				<%# DataBinder.Eval(Container.DataItem, "[\"title_id\"]")%><br>				</itemtemplate>		</asp:Repeater> 	</itemtemplate></asp:Repeater>					
  3. 페이지 위쪽에 다음 페이지 지시문을 추가 합니다.
    <%@ Import Namespace="System.Data" %>					
  4. 코드 숨김 페이지의 Page_Load 이벤트에서 다음 줄 바꾸기
    //Insert code in step 4 of the next section here.						
    다음 코드를 사용 합니다.
             //Create a second DataAdapter for the Titles table.         SqlDataAdapter cmd2 = new SqlDataAdapter("select * from titleauthor",cnn);         cmd2.Fill(ds,"titles");         //Create the relation between the Authors and Titles tables.         ds.Relations.Add("myrelation",         ds.Tables["authors"].Columns["au_id"],         ds.Tables["titles"].Columns["au_id"]);					
    Titles 테이블에 데이터 집합을 추가한 다음 Authors와 Titles 사이의 관계 추가 테이블입니다.
  5. 저장 하 고 응용 프로그램을 컴파일하십시오.
  6. 브라우저에서 페이지를 볼 하는 확인 페이지 지금까지 작동합니다. 출력은 다음과 같이 나타나야 합니다.
    172-32-1176
    PS3333
    213-46-8915
    BU1032
    BU2075
    238-95-7766
    번호인 PC1035
    267-41-2394
    BU1111
    TC7777
    ...

전체 코드 목록입니다.

에 추가

<%@ Page language="c#" Codebehind="NestedRepeater.aspx.cs" AutoEventWireup="false" Inherits="NestedRepeater.NestedRepeater" %><%@ Import Namespace="System.Data" %><html><body><form runat=server><!-- start parent repeater --><asp:repeater id="parentRepeater" runat="server">   <itemtemplate>      <b><%# DataBinder.Eval(Container.DataItem,"au_id") %></b><br>      <!-- start child repeater -->      <asp:repeater id="childRepeater" datasource='<%# ((DataRowView)Container.DataItem)      .Row.GetChildRows("myrelation") %>' runat="server">         <itemtemplate>            <%# DataBinder.Eval(Container.DataItem, "[\"title_id\"]")%><br>         </itemtemplate>      </asp:repeater>      <!-- end child repeater -->   </itemtemplate></asp:repeater><!-- end parent repeater --></form></body></html>				

Nestedrepeater.aspx.cs

using System;using System.Data;using System.Data.SqlClient;using System.Web;using System.Web.SessionState;using System.Web.UI;using System.Web.UI.WebControls;namespace NestedRepeater{   public class NestedRepeater : System.Web.UI.Page   {      protected System.Web.UI.WebControls.Repeater parentRepeater;      public NestedRepeater()      {         Page.Init += new System.EventHandler(Page_Init);      }      public void Page_Load(object sender, EventArgs e)      {         //Create the connection and DataAdapter for the Authors table.         SqlConnection cnn = new SqlConnection("server=(local);database=pubs; Integrated Security=SSPI ;");         SqlDataAdapter cmd1 = new SqlDataAdapter("select * from authors",cnn);         //Create and fill the DataSet.         DataSet ds = new DataSet();         cmd1.Fill(ds,"authors");         //Create a second DataAdapter for the Titles table.         SqlDataAdapter cmd2 = new SqlDataAdapter("select * from titleauthor",cnn);         cmd2.Fill(ds,"titles");         //Create the relation bewtween the Authors and Titles tables.         ds.Relations.Add("myrelation",         ds.Tables["authors"].Columns["au_id"],         ds.Tables["titles"].Columns["au_id"]);         //Bind the Authors table to the parent Repeater control, and call DataBind.         parentRepeater.DataSource = ds.Tables["authors"];         Page.DataBind();         //Close the connection.         cnn.Close();      }      private void Page_Init(object sender, EventArgs e)      {         InitializeComponent();      }      private void InitializeComponent()      {             this.Load += new System.EventHandler(this.Page_Load);      }   }}				
참조
다음 항목에 대 한 자세한 내용은 참조 하십시오 있는 Microsoft입니다.NET Framework 소프트웨어 개발 키트 (SDK):

경고: 이 문서는 자동으로 번역되었습니다.

속성

문서 ID: 306154 - 마지막 검토: 06/12/2012 07:54:00 - 수정: 1.0

  • Microsoft ASP.NET 1.0
  • Microsoft ASP.NET 1.1
  • Microsoft Visual C# .NET 2002 Standard Edition
  • Microsoft Visual C# .NET 2003 Standard Edition
  • kbdatabinding kbhowtomaster kbservercontrols kbmt KB306154 KbMtko
피드백
ow.location.protocol) + "//c.microsoft.com/ms.js'><\/script>");