Vous devez ajouter l'ajouter dynamiquement le contrôle pendant Page_Load pour construire la page correctement à chaque fois. Et puis dans votre (je suppose le bouton), vous pouvez utiliser une méthode d'extension (si vous utilisez 3.5) pour trouver le contrôle dynamique que vous avez ajouté dans le Page_Load
protected void Page_Load(object sender, EventArgs e)
{
PlaceHolder.Controls.Add(new CheckBox {ID = "findme"});
}
protected void Submit_OnClick(object sender, EventArgs e)
{
var checkBox = PlaceHolder.FindControlRecursive("findme") as CheckBox;
}
Méthode d'extension trouvé here
public static class ControlExtensions
{
/// <summary>
/// recursively finds a child control of the specified parent.
/// </summary>
/// <param name="control"></param>
/// <param name="id"></param>
/// <returns></returns>
public static Control FindControlRecursive(this Control control, string id)
{
if (control == null) return null;
//try to find the control at the current level
Control ctrl = control.FindControl(id);
if (ctrl == null)
{
//search the children
foreach (Control child in control.Controls)
{
ctrl = FindControlRecursive(child, id);
if (ctrl != null) break;
}
}
return ctrl;
}
}
avez-vous créé un contrôle dynamique dans l'événement init? –
N ° Sur Page_Load – roosteronacid