컴퓨터 지식 네트워크 - 컴퓨터 프로그래밍 - 중첩된 반복 컨트롤을 사용하여 계층적 데이터 표시

중첩된 반복 컨트롤을 사용하여 계층적 데이터 표시

소개

이 문서에서는 중첩된 Repeater 컨트롤을 사용하여 계층적 데이터를 표시하는 방법을 설명합니다. 물론 이 기술을 DataGrid와 같은 다른 목록 바인딩 컨트롤에도 적용할 수도 있습니다. DataGrid를 포함하는 DataList에는 DataList 등의 조합이 포함되어 있습니다.

상위 테이블에 대한 두 번째 바인딩

Nestedrepeater aspx라는 응용 프로그램 프로젝트에 새 웹 양식을 추가합니다. 도구 상자에서 반복기를 드래그합니다. 이 페이지에서 컨트롤의 ID 속성을 부모로 전환하고 다음 을 선택합니다. 붙여넣기 기능으로 붙여넣기를 사용하세요. 명령문에는 데이터 바인딩 구문이 포함되어 있으며 매우 간단합니다.

<%# DataBinder Eval(Container DataItem au_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의 프로젝트 템플릿에 추가하여 중첩을 형성하는 것입니다.

<%# DataBinder Eval(Container DataItem [\ title_id\ ] ) %>

자식 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 %><%@ 네임스페이스 가져오기= 시스템 데이터 %>

<>

 <%# DataBinder Eval(Container DataItem au_id) %>

< ! 자식 리피터 시작 >  runat= 서버 >  <%# DataBinder Eval(Container DataItem [\ title_id\ ] )%>
  < /itemtemplate>   

< /body>Nestedrepeater aspx cs 시스템 사용;시스템 데이터 사용;시스템 데이터 SqlClient 사용;시스템 웹 사용;시스템 웹 세션 상태 사용;시스템 웹 UI 사용;시스템 웹 UI WebControls 사용; /p>

네임스페이스 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();

上篇: 가무스는 어디서 핸드폰 번호를 회수할 수 있나요? 下篇: 서역에서 건궈로(Jianguo Road) 소후현대도시(Sohu Modern City)까지 얼마나 됩니까? 버스 타는 방법은 무엇입니까?
관련 내용