그룹당 ASP.NET 리피터 헤더 (예 : 월)
문제
행당 날짜가 포함 된 데이터 소스가 있습니다. 이들은 리피터에 묶여 날짜별로 주문됩니다. 매달 렌더링 될 때 분리 된 테이블로 발표하고 싶지만 서버 측 코드에서 여러 리피터를 동적으로 추가하지 않고도 리피터 컨트롤을 사용하여이를 수행 할 수있는 방법이 있습니까?
이상적으로는 다음을 원합니다.
Examples Data:
Row 1: Title 1, 01/12/2009
Row 2: Title 1, 02/12/2009
Row 1: Title 1, 01/01/2010
Row 1: Title 1, 02/01/2009
Required output:
Dec 09
-------------------------------
Title | Date |
-------------------------------|
Title1 | 01/12/2009 |
-------------------------------|
Title2 | 02/12/2010 |
-------------------------------|
Jan 10
-------------------------------
Title | Date |
-------------------------------|
Title1 | 01/01/2010 |
-------------------------------|
Title2 | 02/01/2010 |
-------------------------------|
해결책
ItemTemplate 내에서 자리 표시 자 컨트롤을 사용하여 반복 GOUP 헤더 및 바닥 글을 포함 할 수 있습니다. 그런 다음 날짜를 기준으로 OnitemDatabound 또는 OnitemCreated 이벤트 처리기에서 자리 표시 자의 가시성을 설정하십시오. 이와 같이:
<ItemTemplate>
<asp:PlaceHolder id="table_end" visible="<%# _newMonthStarting && (!_firstMonth) %>" runat="server">
</table>
</asp:PlaceHolder>
<asp:PlaceHolder id="table_end" visible="<%# _newMonthStarting %>" runat="server">
<div><%# _monthHeader</div>
<table>
<tr>
<th>Title</th>
<th>Date</th>
</tr>
</asp:PlaceHolder>
<tr>
<td><!-- data --></td>
<td><!-- data --></td>
</tr>
</ItemTemplate>
<FooterTemplate>
</table>
</FooterTemplate>
다른 팁
예제 데이터와 출력이 일치하지 않지만 여기서 무엇을하고 있는지 알고 있다고 생각합니다.
나는 이것을 메인 리피터에 바인딩하기 위해 1 개의 데이터 세트를 얻기 위해 노력할 것입니다. 이것은 "12 월 9 일"및 "1 월 10 일"데이터입니다. 항목 템플릿 내부에는 한 번 정의 된 또 다른 리피터가 있으며, "다단"이벤트를 사용하여 데이터를 두 번째 리피터에로드합니다.
간단하고 효과적이며 관리하기 쉽습니다.
제휴하지 않습니다 StackOverflow