상세 컨텐츠

본문 제목

Repeater 내부 컨트롤 찾아오기

IDEA/PenPalOn

by luckey 2014. 10. 20. 11:17

본문

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 {

......

}

}

 

 

관련글 더보기

댓글 영역