У меня есть небольшой код, который определяет, должен ли элемент управления (в репитере) быть видимым или нет, и я хочу вызвать это на Page_Load, но я не могу получить элементы управления внутри репитера.
<asp:Repeater ID="repreat" runat="server" >
<HeaderTemplate>
<asp:PlaceHolder runat="server" ID="thActivePrimary">Blah</asp:PlaceHolder>
<asp:PlaceHolder runat="server" ID="PlaceHolder1">Blah</asp:PlaceHolder>
</HeaderTemplate>
<ItemTemplate>
<asp:PlaceHolder runat="server" ID="trActivePrimary">Blah</asp:PlaceHolder>
<asp:PlaceHolder runat="server" ID="thActivePrimary2">Blah</asp:PlaceHolder>
</ItemTemplate>
</asp:Repeater>
Repreat.Controls всегда пуст.
Как мне этого добиться?
2 ответа
Элементы управления не создаются при загрузке страницы, они создаются при вызове привязки данных. Если вы хотите получить доступ к каждому элементу по мере их создания, посмотрите на событие DataBound ретранслятора.
Или привяжите видимый атрибут к вашему источнику данных
foreach (RepeaterItem ri in repeat.Items)
ri.FindControl("thActivePrimary").Visible = false;
Это должно работать
Похожие вопросы
Новые вопросы
asp.net
ASP.NET - это среда разработки веб-приложений Microsoft, которая позволяет программистам создавать динамические веб-сайты, веб-приложения и веб-службы. Полезно использовать этот тег в сочетании с тегом типа проекта, например, [asp.net-mvc], [asp.net-webforms] или [asp.net-web-api]. НЕ используйте этот тег для вопросов о ASP.NET Core - используйте вместо этого [asp.net-core].