중첩된 반복 컨트롤을 사용하여 계층적 데이터 표시
소개
이 문서에서는 중첩된 Repeater 컨트롤을 사용하여 계층적 데이터를 표시하는 방법을 설명합니다. 물론 이 기술을 DataGrid와 같은 다른 목록 바인딩 컨트롤에도 적용할 수도 있습니다. DataGrid를 포함하는 DataList에는 DataList 등의 조합이 포함되어 있습니다.
상위 테이블에 대한 두 번째 바인딩
Nestedrepeater aspx라는 응용 프로그램 프로젝트에 새 웹 양식을 추가합니다. 도구 상자에서 반복기를 드래그합니다. 이 페이지에서 컨트롤의 ID 속성을 부모로 전환하고 다음 Open Nestedrepeater Aspx cs 이 코드 분리 파일은 다음 코드를 삭제하고 이를 Page_Load 이벤트에 추가합니다. 해당 기능은 연결을 설정하고 Pubs에 바인딩하는 것입니다(이 데이터베이스는 SQL의 데모 데이터베이스입니다. 이 데이터베이스는 Net Framework SDK를 설치할 때 설치됩니다. 작성자 테이블을 리피터 제어 public void Page_Load(){ SqlConnection cnn = new SqlConnection( server=(local);database=pubs;uid =sa;pwd=; ); SqlDataAdapter cmd = new SqlDataAdapter( 작성자 cnn에서 * 선택); DataSet ds = new DataSet(); cmd Fill(ds 작성자 ); 하위 테이블이 여기에 삽입됩니다. parent DataSource = ds Tables[authors ]; Page DataBind() cnn Close();} 시스템 데이터 SqlClient를 사용하여 다음 네임스페이스를 추가하세요. 파일의 헤드, 상황에 맞게 연결 문자열을 수정하고 저장합니다. 그리고 애플리케이션을 컴파일하고 브라우저에서 이 페이지를 엽니다. 출력 결과는 다음 형식과 유사합니다. ? > 하위 테이블에 대한 세 가지 바인딩 페이지의 HTML에서 뷰에 다음 코드를 추가하는 목적은 하위 Repeater 컨트롤을 상위 Repeater의 프로젝트 템플릿에 추가하여 중첩을 형성하는 것입니다. 자식 Repeater 컨트롤의 DataSource 속성을 설정합니다. ) %> > 페이지 상단에 다음 지침을 추가합니다(aspx 파일에 있음에 유의하세요): <%@ Import Namespace= System Data %> cs 파일에서 Page_Load(//하위 테이블의 데이터 바인딩이 여기에 삽입됨)의 주석 부분을 다음 코드로 바꿉니다. SqlDataAdapter cmd = new SqlDataAdapter( select * from titleauthor cnn);cmd Fill(ds titles );ds Relations Add( myrelation ds Tables[authors ] Columns[ au_id ] ds Tables[ titles ] Columns[ au_id ]); 브라우저에서 수정 사항을 보려면 애플리케이션을 사용하세요. 페이지 표시 형식은 다음 형식과 유사합니다. PS BU BU PC BU TC? 4개의 완전한 코드 Nestedrepeater aspx <%@ 페이지 언어= C# Inherits= 프로젝트 이름 Nestedrepeater %><%@ 네임스페이스 가져오기= 시스템 데이터 %> <> < ! 자식 리피터 시작 >
< /itemtemplate>
네임스페이스 yourprojectname { public classnestedrepeater : 시스템 웹 UI 페이지 { protected 시스템 웹 UI WebControls Repeater parent;
licnestedrepeater() { Page Init += new System EventHandler(Page_Init); } public void Page_Load(object sender EventArgs e) { //저자 테이블에 대한 연결 및 DataAdapter 생성 SqlConnection cnn = new SqlConnection( server=(local); Database=pubs;uid=sa;pwd=; ); SqlDataAdapter cmd = new SqlDataAdapter( 작성자 cnn에서 * 선택)
//DataSet 생성 및 채우기 ds = new DataSet(); (ds Author );
//제목 테이블에 대한 두 번째 DataAdapter 만들기 SqlDataAdapter cmd = new SqlDataAdapter( select * from titleauthor cnn) Fill(ds titles ); /저자 및 제목 테이블 앞에 관계 생성 ds Relations Add( myrelation ds Tables[authors ] Columns[ au_id ] ds Tables[ titles ] Columns[ au_id ]); //저자 테이블을 부모 반복기 제어 및 호출 DataBind 부모 DataSource = ds Tables[authors]; Page DataBind();