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

기술 자료 번역 기술 자료 번역
기술 자료: 306154 - 이 문서가 적용되는 제품 보기.
이 문서는 이전에 다음 ID로 출판되었음: KR306154
모두 확대 | 모두 축소

이 페이지에서

요약

이 문서에서는 중첩 된 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):
테이블 간의 관계 추가

테이블 사이의 관계 탐색

Repeater 웹 서버 컨트롤

속성

기술 자료: 306154 - 마지막 검토: 2012년 6월 12일 화요일 - 수정: 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
기계 번역된 문서
중요: 본 문서는 전문 번역가가 번역한 것이 아니라 Microsoft 기계 번역 소프트웨어로 번역한 것입니다. Microsoft는 번역가가 번역한 문서 및 기계 번역된 문서를 모두 제공하므로 Microsoft 기술 자료에 있는 모든 문서를 한글로 접할 수 있습니다. 그러나 기계 번역 문서가 항상 완벽한 것은 아닙니다. 따라서 기계 번역 문서에는 마치 외국인이 한국어로 말할 때 실수를 하는 것처럼 어휘, 구문 또는 문법에 오류가 있을 수 있습니다. Microsoft는 내용상의 오역 또는 Microsoft 고객이 이러한 오역을 사용함으로써 발생하는 부 정확성, 오류 또는 손해에 대해 책임을 지지 않습니다. Microsoft는 이러한 문제를 해결하기 위해 기계 번역 소프트웨어를 자주 업데이트하고 있습니다.
이 문서의 영문 버전 보기:306154

피드백 보내기

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com