Bonjour,
je souhaite accéder à un UserControl contenu dans l'itemTemplate d'un Repeater de ma webform, de manière à alimenter dynamiquement les propriétées du userControl qui sera répété, sans avoir recours à du code <%# DataBinder.eval() %> dans la page ASPX.
J'ai parcouru pas mal de forums et ai donc décidé d'utiliser les évènements ItemDataBound ou ItemCreated de manière à récupérer le control présent dans le repeater mais sans succès, ma référence est toujours Null suite à mon FindControl("") !
Je ne peux donc pas accéder au UserControl qui sera répété via le userControl !
Je cherche depuis plusieurs jours, c'est donc en dernier espoir que je poste ici en espérant que vous pourrez éclairer ma lanterne sur le pourquoi !
La solution posté ici (reproduite dans mon code, voir ci dessous) ne fonctionne pas : http://www.aspfr.com/infomsg_COMMENT-ACCEDER-USERCONTROL-PARTIR-REPEATER_993739.aspx
La page ASPX :
(...)
<%@ Register Src="~/ControlesUtilisateursPortail/UCNews.ascx" TagName="UCNews" TagPrefix="uc1" %>
<asp:Content ID="Content1" ContentPlaceHolderID="ContentPlaceHolder1" runat="Server">
<asp:Repeater ID="rptInformations" runat="server" OnItemDataBound="rptInformations_ItemDataBound" OnItemCreated="rptInformations_ItemCreated">
<HeaderTemplate>
</HeaderTemplate>
<ItemTemplate>
<uc1:UCNews ID="ucInformation" runat="server" />
</ItemTemplate>
<FooterTemplate>
</FooterTemplate>
</asp:Repeater>
</div>
</div>
</asp:Content>
Code Behind :
protected void rptInformations_ItemDataBound(object sender, RepeaterItemEventArgs e)
{
UCNews ucNews = e.Item.FindControl("ucInformation") as UCNews;
// vaut Null !
}
protected void rptInformations_ItemCreated(object sender, RepeaterItemEventArgs e)
{
UCNews news = e.Item.FindControl("ucInformation") as UCNews;
//vaut null
}