The beauty of working on .NET web forms is that every control that you see on the screen is an object of some kind, inheriting from the base Object. Which means that we have the liberty of working with them in all kinds of ways. We can drag them onto the designer, or position them manually (as I'm assuming every single person does), and if the need arise we can also add then programmatically to our web pages. Say for example that the fields we collect for a user table such as name, lastname, email, etc all come from a database table. In this case, if we ever needed to collect more information, we'd simply just add a record to our database. So we have to create these controls on the fly when the page loads. I'll document the process in the way that I learned it the first time I tried it out.
. . .