Search code examples
c#asp.netviewstate

Accessing controls added programmatically on postback


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 :)


Solution

  • 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);
    }