Войти

Показать полную графическую версию : Как достать контрол из рипитера


DaRiYs
20-10-2010, 14:49
Столкнулся с такой проблеммой. У меня есть на странице рипитер и в футер-темплейте обьявлен некий пользовательский контрол, как мне к нему обратится? Метод FindControl( string CintrolID) возвращает нул.

Delirium
21-10-2010, 01:22
ID и NAME у контрола есть? Приведите часть кода разметки и часть кода .NET, где идет обращение к контролу.

DaRiYs
24-10-2010, 12:35
Вот к примеру


<asp:Repeater ID="rpUsersList" runat="server">
<ItemTemplate>
<asp:Label ID="lUserStatus" runat="server">Status: </asp:Label>
</ItemTemplate>
</asp:Repeater>



Label lb=(Label)rpUsersList.FindControl("lUserStatus");


При этом получаем нулл

Delirium
25-10-2010, 02:45
Хм. Интересная ситуация. Дело в том, что this.FindControl("rpUsersList").Controls.Count возвращает 0, т.е. дочерних элементов у repeater нет. Та же ситуация с this.FindControl("rpUsersList").HasControls() - равно false. Т.е. получается, что сервер не видит просто того, что находится в шаблонах, т.к. они формируются в процессе отображения данных, а не в процессе формирования таблицы.

DaRiYs
26-10-2010, 19:15
И это никак нельзя решить?

Delirium
27-10-2010, 01:04
DaRiYs, ты лучше объясни, ЧТО ты пытаешься сделать. Сдается мне, имеет место просто неверный подход к решению задачи либо использование не того контрола.




© OSzone.net 2001-2012