2011-10-19 4 views
-1

각 항목 아래에 세부 항목이있는 항목 목록을 표시하는 문서를 만들려고합니다. 나는 내가하는 일이 상대적으로 간단해야하고, 대답은 내 코에 숨어있는 것처럼 느낀다. 그러나 내가 찾고있는 것을 찾을 수 없다.부모/자식 데이터를 gridview에 표시

예를 들어, 내가 좋아하는 음식의 하위 목록이있는 사람을 나열하는 경우를 가정 해 봅시다.

USERID LASTNAME FIRSTNAME AGE FAVORITEFOOD 
100  DOE  JOHN  31 Apple 
100  DOE  JOHN  31 Pie 
100  DOE  JOHN  31 Cookies 
101  SMITH  JANE  95 Oats 
101  SMITH  JANE  95 Bananas 
101  SMITH  JANE  95 Prunes 

나는이 작업을 수행하기 위해 노력하고있어 :

DOE,  JOHN  AGE:31 
     Apple 
     Pie 
     Cookies 

SMITH, JANE  AGE:95 
     Oats 
     Bananas 
     Prunes 

나는 같은 구조화 된 데이터베이스에서 하나의 테이블을 반환 해요 :

데이터가 최종적으로 표시하는 방법입니다 gridview 컨트롤. 그게 내가 사용해야하는 것이 확실하지 않습니다. 하지만 내가 겪고있는 문제는 유일한 USERID가있는 항목 만 나열하도록 gridview를 얻는 것입니다. 그리고 그 고유 한 USERID를 사용하여 아래의 개별 항목을 나열하십시오.

표준 .net 컨트롤을 사용하여 코드 숨김에서이 ​​코드를 모두 함께 연결하지 않아도이 기능을 사용할 수있는 "자동화 된"방법이 있습니까?

감사

+1

이것은 제어 문제가 아닌 모델링 문제처럼 보입니다. FAVORITEFOOD은 USERID가 외부 키인 서브 테이블이어야합니다. –

+0

@DanDaviesBrackett에 동의합니다. 이 테이블에는 업데이트 이상과 같은 문제가 발생할 수있는 많은 중복 데이터가 포함되어 있습니다. – Jason

+0

그래, 나는 문제일지도 모른다는 느낌이 들었다. 당신의 방식대로하는 것에 대해 저를 느끼게하는 것은 SqlDataSource를 사용하는 것입니다. SqlDataSource는 한 번에 하나의 레코드 세트 만 허용합니다. 따라서 첫 번째 부분 (사용자 정보)을 반환하는 저장 프로 시저 하나와 각 사용자 (좋아하는 음식)의 세부 정보를 반환하는 다른 저장 프로 시저를 만들어야합니다. 수천 명의 사용자를 다루고 있다면 DB 쿼리가 많습니다. 한 번에 모든 것을 가져 오는 것이 성능면에서 더 효율적일 수 있다고 생각했습니다. – user1003916

답변

1

글쎄, 당신은 이름, 성, 사용자 ID를 가정, 고유 쿼리를 얻고, 나이가 중복 된 경우 (예 : 별개의 USERID를 선택, 성, 이름, 테이블 AGE)에 DataTable을 다른를 얻을 수 쿼리 (예 : 테이블에서 USERID, FAVORITEFOOD 선택)를 모두 동일한 DataSet에있는 다른 DataTable로 설정하면 DataRelation을 설정할 수 있습니다. GetChildRows은 선택한 상위 정보를 기반으로 하위 정보를 표시하는 데 사용될 수 있습니다. 당신이 묻는 방식대로 보여준 경험이 없지만 두 개의 그리드, 즉 ItemSource가 부모이고 다른 하나가 GetchildRows 메서드 (부모의 선택된 행을 기반으로 함)에 사용되었습니다. 그게 도움이되는지 아닌지 확실하지 않은 경우 ...

관련 문제