Repeate 출력시 기존에는 Table구조를 사용해서 출력만 하다보니 DIV구조일 경우 DataType을 몰라서...
DataType 을 확인해보고 출력
e.Item.FindControl("_EmptyData").GetType().ToString()
해당 컨트롤의 DataType을 출력할 수 있다.
DIV는 HtmlGenericControl로 사용할 수 있다.
물론 서버컨트롤인 Panel 을 사용해도, Label, Literial을 사용해도 된다.
================== list.aspx ================================================================================
<asp:Repeater ID="DataListTable" runat="server" OnItemDataBound="DataListTable_ItemDataBound" EnableViewState="false">
<HeaderTemplate>
<table class="tblList">
<colgroup>
<col width="*" />
<col width="80px" />
</colgroup>
<tr>
<th style="border-top:0px;">제목</th>
<th style="border-top:0px;">작성일</th>
</tr>
<tbody>
</HeaderTemplate>
<ItemTemplate>
<tr>
<td>제목출력</td>
<td class="num">내용출력</td>
</tr>
</ItemTemplate>
<FooterTemplate>
</tbody>
<tfoot>
<tr runat="server" id="_EmptyData" visible="true" EnableViewState="false">
<td colspan="3" style="text-align:center; height:300px;">등록된 정보가 없습니다.</td>
</tr>
</tfoot>
</table>
</FooterTemplate>
</asp:Repeater>
================== list.aspx.cs ==============================================================================
using System.Web.UI.HtmlControls;
.......
protected void DataListTable_ItemDataBound(object sender, RepeaterItemEventArgs e){
if(DataListTable.Items.Count< 1){
if(e.Item.ItemType == ListItemType.Footer){
HtmlTableRow tr_footer = (HtmlTableRow)e.ItemFindControl("_EmptyData");
tr_footer.Visible = false;
}
} else {
......
}
}
댓글 영역