Bonjour,
J'ai un contrôle "CustomPanel" qui hérite de Panel et dans lequel j'essai d'obtenir un autre contrôle de type Image en fonction de son ID. J'ai donc écrit la propriété suivante :
private Image _ImageControl = new Image();
public string ImageControlID
{
get { return _ImageControl.ID; }
set { _ImageControl = (Image) ControlUtil.FindTargetControl(value, this, true); }
}
où ControlUtil.FindTargetControl() est définie comme suit :
public class ControlUtil
{
internal static Control FindTargetControl(string controlID, Control control, bool searchNamingContainers)
{
if (searchNamingContainers)
{
Control namingContainer = control;
Control control2 = null;
while ((control2 == null) && (namingContainer != control.Page))
{
namingContainer = namingContainer.NamingContainer;
if (namingContainer == null)
{
return control2;
}
control2 = namingContainer.FindControl(controlID);
}
return control2;
}
return control.FindControl(controlID);
}
}
Je l'ai trouvé dans cet article :
http://blogs.codes-sources.com/cyril/archive/2007/06/23/la-methode-findcontrol.aspx
Le problème est que la propriété namingContainer de mon controle "CustomPanel" renvoi toujours nul donc FindTargetControl renvoi toujours une valeur nulle.
Sauriez-vous quel est le problème ?
Merci d'avance.
Mathmax