[ASP.NET] Data Control (GridView, DataList, Repeater) - HeaderTemplate에 있는 컨트롤 찾기(FindControl)
아래와 같이 ItemDataBound Event내에서 HeaderTemplate 에 있는 컨트롤을 FindControl을 통해서 찾아지지만 Label이 가지고 제어를 하려고 하면 오류 발생.
if (e.Item.ItemType == ListItemType.Item || e.Item.ItemType == ListItemType.AlternatingItem)
{
// aspx에 있는 DataList내에 있는 Label을 찾음.
HtmlTableCell tdPhoneHead = (HtmlTableCell)e.Item.FindControl("tdMemimgHead");
tdPhoneHead.Visible = false;
}
1. aspx Page
<HeaderTemplate>
<tr align="center">
<td>Name</td>
<td runat="server" id="tdMemimgHead"></td>
<td>Phone</td>
</tr>
</HeaderTemplate>
2. aspx.cs Page
if (e.Item.ItemType == ListItemType.Header)
{
HtmlTableCell tdPhoneHead = (HtmlTableCell)e.Item.FindControl("tdMemimgHead");
tdPhoneHead.Visible = false;
}
결과적으로 FindControl을 통해 aspx에 있는 컨트롤을 찾는 방법은 동일하지만
입구가 틀리므로 해서 오류가 발생하는 것이였습니다. ^^;;;