You can use Repeater for this.
HTML
<div>
Numbers of TextBox
<asp:DropDownList ID="ddlNumberOfRows" runat="server" AutoPostBack="true" OnSelectedIndexChanged="ddlNumberOfRows_SelectedIndexChanged">
<asp:ListItem Text="One" Value="1" />
<asp:ListItem Text="Two" Value="2" />
<asp:ListItem Text="Three" Value="3" />
</asp:DropDownList>
<br />
<br />
<asp:Repeater ID="Repeater1" runat="server">
<ItemTemplate>
<%#Container.ItemIndex+1 %>
<asp:TextBox ID="txtTextBox1" runat="server" />
</ItemTemplate>
<SeparatorTemplate>
<br />
</SeparatorTemplate>
</asp:Repeater>
</div>
C#
protected void ddlNumberOfRows_SelectedIndexChanged(object sender, EventArgs e)
{
DataTable dt = new DataTable();
dt.Columns.Add("TextBox");
int count = Convert.ToInt32(ddlNumberOfRows.SelectedItem.Value);
for (int i = 0; i < count; i++)
{
dt.Rows.Add("");
}
this.Repeater1.DataSource = dt;
this.Repeater1.DataBind();
}
Screenshot
