You should cast the WebControl to a TextBox. The Text property is not
available for a high level "WebControl". It is only provided by more
specialized inheritors such as the TextBox.
Also keep in mind that the controls are in a tree. You should recurse inside
each controls collection else you'll see only those who are at the very
first level.
You could time how much time it takes and see if it's worth depending on
what you are trying to do (especially if the forms doesn't contains any
dynamic control) you could just do something like :
MyControls=Array(Text1,Text2,DropDownList2)
CreateSessions(MyControls)
Or also :
- see if the control supports IPostBackDataHandler. This interface is
implemented by all controls that are able to post values (including also
dropdownlist etc...).
- still another way would be to browse the Request.Form collection that only
contains posted values (likely quicker)...
Post perhaps also about what you are trying to do...
--
Patrice
<an***********@yahoo.com> a écrit dans le message de
news:11*********************@g49g2000cwa.googlegro ups.com...
I am new to the .NET framework.
I know this has been discussed many times in this group. I also read
extensively here, however, I am in bad luck: none of the sample code
provided in this forum worked for me.
What I want to do is really simple.
I simply want to iterate through all controls of the current page and
create session objects for TextBoxes and CheckBoxes.
I tried this:
Sub CreateSessions()
Dim ctlObj As System.Web.UI.WebControls.WebControl
For Each ctlObj in Me.Controls
If ctlObj.GetType().ToString() =
"System.Web.UI.WebControls.TextBox" Then
Session(ctlObj.ToString()) = ctlObj.Text
End If
If ctlObj.GetType().ToString() =
"System.Web.UI.WebControls.CheckBox" Then
Session(ctlObj.ToString()) = ctlObj.Checked
End If
Next
End Sub
The error message I got:
Compiler Error Message: BC30456: 'Text' is not a member of
'System.Web.UI.WebControls.WebControl'.
Then what type should I assign to ctlObj? Thanks a lot!