문제

여러 섹션과 함께 표 형식으로 제시 해야하는 데이터가 있습니다. 특히, 각 데이터 섹션은 하루 종일 (자체 헤더와 함께) 분해됩니다. 이것은 기본적으로 일회성 단일 페이지 거래이며 실제로 유지되지 않으므로 아키텍처에 많은 노력을 기울이고 싶지 않습니다.

나는 두 개의 테이블이 있습니다. 헤더 및 항목.

헤더는 다음의 형식을 가지고 있습니다.

date(datetime), type(tinyint), firstline(varchar), secondline(varchar)

항목에는 형식이 있습니다

id(int), date(datetime), type(tinyint), name(varchar), value1(int), 
    value2(int), value3(int)

이와 유사하게 보이려면 데이터가 필요합니다 (첫 번째 및 두 번째 라인은 데이터가 채워졌으며 세 번째 줄은 정적 텍스트이며 항목 줄은 데이터가 채워집니다).

1/1/2009
--------------------------------------------------------------------------
|                              [First line]                              |
--------------------------------------------------------------------------
|                             [Second line]                              |
--------------------------------------------------------------------------
|  Date |       Name            |   Value 1    |   Value 2   |  Value 3  |
==========================================================================
| [Date]|      [Name]           |  [Value 1]   |  [Value 2]  | [Value 3] |
--------------------------------------------------------------------------
| [Date]|      [Name]           |  [Value 1]   |  [Value 2]  | [Value 3] |
--------------------------------------------------------------------------
1/2/2009
--------------------------------------------------------------------------
|                              [First line]                              |
--------------------------------------------------------------------------
|                             [Second line]                              |
--------------------------------------------------------------------------
|  Date |       Name            |   Value 1    |   Value 2   |  Value 3  |
==========================================================================
| [Date]|      [Name]           |  [Value 1]   |  [Value 2]  | [Value 3] |
--------------------------------------------------------------------------
| [Date]|      [Name]           |  [Value 1]   |  [Value 2]  | [Value 3] |
--------------------------------------------------------------------------

이것은 현재 데이터베이스에서 하루 종일 반복되며, 매일 자체 헤더가있는 자체 테이블이 있습니다. 그들은 또한 유형별로 필터링됩니다. 페이지에는 지정된 유형의 헤더와 항목 만 표시됩니다. 유형은 작은 작은 것입니다.

문제는 사용하기 가장 좋은 ASP.NET 요소는 무엇입니까? Datalist? 그리드 뷰? 두 테이블의 데이터를 헤더/항목 형식으로 어떻게 포함합니까?

편집 : 죄송합니다. 이것이 Windows 2000/IIS5에서 작동해야한다고 언급하는 것을 잊었으므로 ASP.NET 2.0을 고집하고 3.0 또는 3.5 기능을 사용할 수 없습니다.

도움이 되었습니까?

해결책 5

좋아, 그녀는 내가 생각해 낸 최종 해결책입니다. 나는 이것이 가장 효율적이거나 가장 빠르지 않다고 확신하지만, 그 일을 끝내고 다른 일로 나아가 야했습니다.

나의 첫 번째 단계는 내가 rowbase라고 불리는 기본 클래스를 만드는 것이 었습니다. 이것은 getrow ()라는 추상적 인 메소드를 구현 한 추상 클래스였습니다. 그런 다음 Rowbase에서 Bannerrow와 Itemrow라는 두 개의 다른 클래스를 도출했습니다. 이 클래스에는 내 테이블에 사용 된 모든 데이터가 포함 된 필드가 포함되어 있습니다.

그런 다음 두 개의 DataTables를 만들고 DataAdapter를 통해 두 쿼리 결과로 채웠습니다.

다음으로 목록을 만들었습니다u003CRowBase> DataTables 위에 상호 작용하여 행 유형에 따라 배너 로우 또는 항목을 생성합니다.

다음으로 목록을 실행했습니다u003CRowBase> .SORT, 날짜 및 행을 정렬하여 배너 로스가 항목에 대한 우선 순위를 지정할 수 있도록합니다.

마지막으로, 나는 내 웹 form에 테이블을 배치하고 id = "maintable"으로 runat = "server"로 설정 한 다음 내 목록을 반복했습니다.u003CRowBase> 각 행베이스에서 getrow라고합니다.

배너 로우와 항목은 각각 getrow ()의 재정의가 있으며, 이는 데이터를 올바른 형식으로 포함시키기 위해 포맷 된 htmltablerow를 반환했습니다. 그런 다음 조건부 로직을 사용하여 Itemrow 데이터에 대한 헤더 행을 모두 삽입했습니다.

이것은 Rob과 Ben의 아이디어의 변형이지만, 데이터를 훨씬 더 마사지하는 것이 포함되어 있었기 때문에 두 가지 모두에게 upvotes를 주었지만 답으로 나 자신을 인정하고 있습니다.

다른 팁

ASP : 테이블을 살펴보십시오. 코드의 일부 중첩 조건부 반복에 행과 열을 추가 할 수 있습니다.

데이터를 XML로 반환 한 다음 XSLT를 사용하여 보고서를 작성하는 것이 좋습니다. 그렇지 않으면 중첩 그리드 뷰 또는 리피터를 사용해야합니다.

패턴이 매번 동일한 수의 선 등으로 진실 된 경우 리피터가 최선의 방법이 될 수 있으며 레이아웃이 화면에서 어떻게 보이는지에 대한 최대한의 제어를 제공합니다.

an <asp:Table> 페이지에서 코드 뒤에서 빌드하십시오.

열 (셀)의 Colspan 매개 변수를 사용하면 필요한 행의 많은 열에 걸쳐있는 항목을 만들 수 있습니다.

위의 앱의 경우, 이것은 첫 번째 줄과 두 번째 줄의 콜 스팬이 5를 가짐을 의미합니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top