예를 들어 미국 주 목록을 반복하고 각 주 이름 뒤에 도시 및 도시 인구 테이블을 표시해야하는 시나리오가 있습니다. 설계 요구 사항에 따라 모든 외부 반복은 도시 테이블이 따르는 주 이름이어야하며이 요구 사항은 현재 변경할 수 없습니다. Repeater 내의 GridView를 중첩하고 Repeater의 ItemDataBound
이벤트 중에 반복되는 각 GridView를 바인딩 할 때 단점이 있습니까? 대체 솔루션은 무엇입니까?Repeater 내의 GridView 중첩
2
A
답변
1
리피터에서 GridView를 중첩하는 것이 가장 좋은 해결책이었습니다. 그런 다음 Repeater의 ItemDataBound 이벤트 중 각 반복되는 GridView를 바인딩했습니다. 물론 ViewStates를 사용하지 않아도되므로 뷰 상태를 해제했습니다.
2
이 만약 그랬다면, 난이 질문을 반대 것 및 내가의 GridView를 사용해야하는 이유는 페이징 및 정렬과 같은 내장 기능의 무리를해야하는 경우, 요청, 다음의 GridView이 잘 맞는 수 있습니다. 표 형식의 데이터 만 원한다면 다시 생각해 보겠습니다. 왜? GridView를 사용하면 사용하지 않을 물건이 많이 생기므로 ViewState가 잠재적으로 커질 것이고 페이지 성능이 느려질 것입니다.
저는 GridView와 관련하여 몹시 괴롭지는 않지만 좋은 이유가있을 때만 사용합니다.
GridView를 사용하지 않았다면 다른 Repeater를 사용하여
코드가 뒤에 있다면 문자열을 작성하고 리터럴에 덤핑하는 대신 (HtmlTableRow, HtmlTableCell) 컨트롤을 사용하여 테이블에 추가 할 것입니다. 또는 HtmlTextWriter를 사용하십시오. 필자는 코드 숨김으로 프레젠테이션을하고 싶지 않습니다. 그래서 나 였다면 Repeater 나 ListView를 사용할 것입니다. – CarmineSantini
위의 시나리오에서는 생성 된 모든 GridView 개체의 오버 헤드를 줄이는 마스터 세부 스타일 GridView를 사용하는 것이 좋습니다.
다양한 구현 (using a drop down for the master, modal popup for the detail 등 사용)이 있지만 주요 요점은 구현이 가능하다는 것입니다.
출처
2008-09-08 23:05:32
아쉽게도 디자인 요구 사항에 따라 모든 외부 반복은 도시 이름이 뒤 따르는 도시 이름이어야합니다. 나는 그 점을 명확하게하기 위해 나의 글을 편집했다. –
최소한 GridView에서 ViewState를 해제하면됩니다.
출처
2008-09-09 14:48:32
관련 문제