Code is simplified to make it clearer.
The description
I'm writing a custom control that uses Controls.Add() to add all of the sub control it wants.
Say for example my control is called "lots_of_text_boxes" and I add a minimum number of text boxes and provide a button (Controls.Add(button)) that says "add new text box".
The control renders nicely. I click the button, the OnLoad(EventArgs e) recreates the sub controls and asp.net's magic find all my posted data and fills in the text boxes so I can read them.
btnAddNew_Click(object sender, EventArgs e) gets called to add a new textbox.
At first I tried Controls.Add(textbox) but this puts the text box at the bottom under the add button.
I could remove the button, add the text box and re add the button but I don't want to do this because it is not simple in the real case (lots of related buttons and controls intertwined).
What I want to do: Number_of_Textboxes_to_show++; Controls.Clear(); OnLoad(new EventArgs());
this wipes the control to start over and recreates it with one new ones.
The problem
because the postdata was already loaded the page is redrawn but all the data in the fields was lost. I really want a function "LoadPostData()" that goes through all the sub controls and reloads their post data.
it makes sense to me that the post data is still in memory (I hope) and all the controls on pass 2 have the same unique ID's as they did on pass 1 (and on the previous form that was posted).
Has anyone see anything like this?