Чтобы добавить элементы управления динамически, вы можете использовать панель в качестве заполнителя, скажем,
<asp:Panel ID="ControlPlaceholder" runat="server" />
Затем на стороне сервера вы можете добавить к нему объекты следующим образом:
int controlCount = 0;
...
TextBox newTextBox = TextBox();
newTextBox.ID = "ctl_" + controlCount++;
ControlPlaceholder.Controls.Add(newTextBox);
Если вы добавите к нему элементы управления во время своего события Page_Load и будете использовать согласованный метод генерации идентификаторов элементов управления (например, простой подсчет выше), тогда любые состояния представления или привязки событий будут связаны с нужным объектом постбэк.