retrieve value of dynamic web control

A

Aruna Bajpayee

Hi,
I have created a survey form in asp.net that has dynamically generated
fields( based on the record that I get from the DB I adding a text box
or a dropdown to the form). My problem is, how do I get the values of
the text box or dropdown list to save in the DB after user has filled
the survey?

I have used the following code in my Page_Load sub:


Private Sub Page_Load(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles MyBase.Load
'Put user code to initialize the page here
Dim conn As New
SqlConnection(ConfigurationSettings.AppSettings("connectionstring"))
Dim cmd As New SqlCommand()
cmd.CommandText = "SELECT b.ftext as ftext, a.ftid as ftid FROM
pagedetail a INNER JOIN fieldtext b ON a.fid = b.fid "
cmd.Connection = conn
cmd.CommandType = CommandType.Text
Dim dr As SqlDataReader
conn.Open()
dr = cmd.ExecuteReader(CommandBehavior.CloseConnection)
Do While dr.Read()'for each record print the label and look in
the field type table to see which field to add to the form.
Dim Label As New Label()
Dim labeltext As String
labeltext = dr(0)
Label.Text = labeltext
ph.Controls.Add(Label)
Dim conn1 As New
SqlConnection(ConfigurationSettings.AppSettings("connectionstring"))
Dim cmd1 As New SqlCommand()
Dim newvalue As String
cmd1.CommandText = "SELECT ftype from fieldtype where fid="
& dr(1)
cmd1.Connection = conn1
cmd1.CommandType = CommandType.Text
conn1.Open()
newvalue = cmd1.ExecuteScalar
If newvalue = "text" Then 'add a text box
Dim tb As New TextBox()
placeholder.Controls.Add(tb)
ElseIf newvalue = "dropdown" Then
Dim dd As New dropdownlist()
placeholder.controls.add(dd)
End If
Loop

*****this is where I am stuck************
Dim el As Control
For Each el In Controls
Dim controltype As String
controltype = el.ToString()
If controltype = "System.Web.UI.HtmlControls.HtmlForm" Then
I NEED THE VALUE OF THE TEXT BOX OR THE DROPDOWN LIST.
End If



Next
End Sub

*******************
I would really appreciate if anyone can help me on this.....
 
J

John Saunders

Aruna Bajpayee said:
Hi,
I have created a survey form in asp.net that has dynamically generated
fields( based on the record that I get from the DB I adding a text box
or a dropdown to the form). My problem is, how do I get the values of
the text box or dropdown list to save in the DB after user has filled
the survey?

I have used the following code in my Page_Load sub:


Private Sub Page_Load(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles MyBase.Load
'Put user code to initialize the page here
Dim conn As New
SqlConnection(ConfigurationSettings.AppSettings("connectionstring"))
Dim cmd As New SqlCommand()
cmd.CommandText = "SELECT b.ftext as ftext, a.ftid as ftid FROM
pagedetail a INNER JOIN fieldtext b ON a.fid = b.fid "
cmd.Connection = conn
cmd.CommandType = CommandType.Text
Dim dr As SqlDataReader
conn.Open()
dr = cmd.ExecuteReader(CommandBehavior.CloseConnection)
Do While dr.Read()'for each record print the label and look in
the field type table to see which field to add to the form.
Dim Label As New Label()
Dim labeltext As String
labeltext = dr(0)
Label.Text = labeltext
ph.Controls.Add(Label)
Dim conn1 As New
SqlConnection(ConfigurationSettings.AppSettings("connectionstring"))
Dim cmd1 As New SqlCommand()
Dim newvalue As String
cmd1.CommandText = "SELECT ftype from fieldtype where fid="
& dr(1)
cmd1.Connection = conn1
cmd1.CommandType = CommandType.Text
conn1.Open()
newvalue = cmd1.ExecuteScalar
If newvalue = "text" Then 'add a text box
Dim tb As New TextBox()
placeholder.Controls.Add(tb)
ElseIf newvalue = "dropdown" Then
Dim dd As New dropdownlist()
placeholder.controls.add(dd)
End If
Loop

Why not get the value right after you've added the TextBox or DropDownList?
 
A

Aruna Bajpayee

Thanks for the reply but how would I do that?
User has to fill out the info before I can retrieve it.Am I going in the
wrong direction?
 
L

lisa

Austin said:

I'm not sure what the problem is. First of all, if you're adding the
controls to a placeholder, why are you looping through all the controls
on the form?

For Each myControl as Control in placeholder.Controls
Next

Then again, you can also create an ArrayList and add the controls to
the ArrayList as you create them.

Private myList as New ArrayList

If newvalue = "text" Then 'add a text box
Dim tb As New TextBox()
placeholder.Controls.Add(tb)
myList.Add(tb)
ElseIf newvalue = "dropdown" Then
Dim dd As New dropdownlist()
placeholder.controls.add(dd)
myList.Add(dd)
End If

And then loop through the ArrayList.

Or heck, just store the control names in a string array, and then loop
through Page.Request.Form.Keys until you get a match, and look at
Page.Request.Form at the same index for the value. If it's not there,
then either you have an empty TextBox, or you did something weird with
the DropDown.

Lisa
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Members online

Forum statistics

Threads
473,743
Messages
2,569,478
Members
44,899
Latest member
RodneyMcAu

Latest Threads

Top