Если вам нужно значение из этого сгенерированного текстового поля в коде позади, вам будет гораздо лучше не создавать его динамически с помощью Javascript. Вы можете просто создать обычное текстовое поле и сделать его изначально невидимым, например:
<asp:TextBox ID="yourTextboxID" Visible="False" runat="server" />
Когда кнопка нажата, обработайте событие в коде позади и сделайте текстовое поле видимым:
yourTextboxID.Visible = True;
Viewstate сохранит значения в обратных передачах.
Если каждое нажатие кнопки должно создавать дополнительное текстовое поле, вы также можете сделать это в коде, то есть использовать заполнитель в ascx, а затем прикреплять новое текстовое поле к нему при каждом нажатии кнопки:
yourPlaceholderID.Controls.Add(new TextBox() { ID = "textbox1" });