It is easy to add one new control to your page but after that you may have troubles. Here is one option that uses Postbacks and Session.
Basically, I save a list of textboxes as a session variable and then check them on button click and add them to the form — I also give them unique ID’s so I can do something with them later on in the process…. Here is the code:
protected void Button1_Click(object sender, EventArgs e) { //This will be changed if we have controls in session. int tbId = 1; List seshTextboxes = new List(); if (Session["controlsList"] != null) { List list2 = (List)Session["controlsList"]; //Change the newest Id to the new tb tbId = list2.Count + 1; //Get controls out of session foreach (ASPxTextBox tbSesh in list2) { seshTextboxes.Add(tbSesh); form1.Controls.Add(tbSesh); } } ASPxTextBox tb = new ASPxTextBox(); tb.ID = "Column" + tbId; tb.Text = tbId.ToString(); seshTextboxes.Add(tb); form1.Controls.Add(tb); Session["controlsList"] = seshTextboxes; }
Screenshot:

