txt_boxes created by a button press

mabs0001

New member
Joined
Mar 10, 2008
Messages
2
Programming Experience
1-3
I am quite new to vb.net. I would like to create a text box every time a user clicks on a button. Ideally I would like this to happen without a screen refresh. So far I have came up with the following.

Dim i As Int32 = 1
Dim newTxtBx As New TextBox

Protected Sub btn_addItem_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles btn_addItem.Click

newTxtBx = New TextBox
i = i + 1
newTxtBx.ID = "lbl_item" & i.ToString
plh_items.Controls.Add(newTxtBx)

End Sub

plh_items is my place holder. However this code will only generate 1 text box, I need it to generate as many as the user wants. Any help would be much appreciated!
 
No, it is creating the text boxes, you just aren't changing the location they are being placed in so it is just placing them all on top of each other. Also, I don't know how yours compiles, ID isn't a property of TextBox for me, should be .Name
 
Thread moved to ASP.NET section. Please post in appropriate forum.
 
Answer below (provided by vinz on asp.net) for anyone interested.

Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load

If Not IsPostBack Then
Dim NumberOfControls As Int32 = 0
Session("NumberOfControls") = NumberOfControls
End If

End Sub

Protected Sub btn_addItem_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles btn_addItem.Click

End Sub

Private Sub CreateTextBoxes()

Dim NumberOfControls As Int32 = Session("NumberOfControls")

For counter As Integer = 0 To NumberOfControls
Dim tb As New TextBox
Dim lbl As New Label
'Dim newRow As New HtmlTableRow
'Dim newCell As New HtmlTableCell

lbl.ID = "lbl_" & (counter + 1).ToString()
lbl.Text = "item " & counter
plh_label.Controls.Add(lbl)
plh_label.Controls.Add(New LiteralControl("<br/>"))

tb.Width = 150
tb.Height = 18
tb.ID = "txt_" & (counter + 1).ToString()
tb.Text = "item " & counter
plh_txtBox.Controls.Add(tb)
plh_txtBox.Controls.Add(New LiteralControl("<br/>"))
Next
End Sub

Protected Overloads Overrides Sub CreateChildControls()
Dim NumberOfControls As Int32 = Session("NumberOfControls")
' Here we are recreating controls to persist the ViewState on every post back
If Page.IsPostBack Then
NumberOfControls += 1
Session("NumberOfControls") = NumberOfControls
CreateTextBoxes()
Else
CreateTextBoxes()
' Increase the control value to 1
NumberOfControls = 0
Session("NumberOfControls") = NumberOfControls
End If
End Sub
 
Back
Top