C# – Accessing controls added programmatically on postback

asp.netcviewstate

On postback: How can I access ASP.NET controls in my code-behind file, which are added programmatically?

I am adding a CheckBox control to a Placeholder control:

PlaceHolder.Controls.Add(new CheckBox { ID = "findme" });

Controls added in the ASPX file are showing up fine in Request.Form.AllKeys except the ones I add programatically. What am I doing wrong?

Enabling the use of the ViewState on the controls does not help. If only it was that simple 🙂

Best Answer

You should recreate your dynamic control on postback:

protected override void OnInit(EventArgs e)
{

    string dynamicControlId = "MyControl";

    TextBox textBox = new TextBox {ID = dynamicControlId};
    placeHolder.Controls.Add(textBox);
}