473,396 Members | 1,891 Online
Bytes | Software Development & Data Engineering Community
Post Job

Home Posts Topics Members FAQ

Join Bytes to post your question to a community of 473,396 software developers and data experts.

Problem getting all controls from the current page

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!

Nov 19 '05 #1
4 1369
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!

Nov 19 '05 #2
Dim ctlObj As System.Web.UI.Control
For Each ctlObj In Me.Controls
If TypeOf ctlObj Is TextBox Then
Session(ctlObj.ToString()) = CType(ctlObj, TextBox).Text
ElseIf TypeOf ctlObj Is CheckBox Then
Session(ctlObj.ToString()) = CType(ctlObj, CheckBox).Checked
End If
Next

First, ctlObj should be of type Control not WebControl 'cuz you never know
what type of controls are gonna be in your page.

2nd, use typeof xx Is YY instead of the GetType().ToString()

finally, and the reason it isn't working, in order to access the Text
property of your textbox, you need to cast your ctlObj to a textbox. Even
though it's of type TextBox, it's actually a WebControl (Control in my
example) object, which doesn't have a TExt property

Karl

--
MY ASP.Net tutorials
http://www.openmymind.net/

<an***********@yahoo.com> wrote in message
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!

Nov 19 '05 #3
Hey, thank you very much for your great hint! Actually, Request.Form
sounds like what I want. I did not know about this before. But I think
I did Request.Form before in Java Servlets, so it sounds familiar to
me.

Thanks again. Let me try to figure out how to use Request.Form.

Patrice wrote:
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!


Nov 19 '05 #4
Hi, thanks a lot! It's been years since I last programmed in Java,
which does the same kind of casting type thing. You got the problem
corrected. Thanks again.

Karl Seguin wrote:
Dim ctlObj As System.Web.UI.Control
For Each ctlObj In Me.Controls
If TypeOf ctlObj Is TextBox Then
Session(ctlObj.ToString()) = CType(ctlObj, TextBox).Text
ElseIf TypeOf ctlObj Is CheckBox Then
Session(ctlObj.ToString()) = CType(ctlObj, CheckBox).Checked
End If
Next

First, ctlObj should be of type Control not WebControl 'cuz you never know
what type of controls are gonna be in your page.

2nd, use typeof xx Is YY instead of the GetType().ToString()

finally, and the reason it isn't working, in order to access the Text
property of your textbox, you need to cast your ctlObj to a textbox. Even
though it's of type TextBox, it's actually a WebControl (Control in my
example) object, which doesn't have a TExt property

Karl

--
MY ASP.Net tutorials
http://www.openmymind.net/

<an***********@yahoo.com> wrote in message
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!


Nov 19 '05 #5

This thread has been closed and replies have been disabled. Please start a new discussion.

Similar topics

7
by: Tim T | last post by:
Hi, I have the need to use dynamically loaded user controls in a webform page. I have the controls loading dynamically, and that part works fine. this is the code used in a webform to dynamically...
3
by: George K | last post by:
Hi, i have a very irriting problem that i have written a short piece of code to demonstrate. The problem is that my aspx page is not fully refreshed after an event, which is delegated to an...
1
by: José Joye | last post by:
Hello, I'm playing around with dynamically loading user controls ...and having problems I created a really simple userControl (in fact contains a plain text box) and placed it into the...
4
by: Bass Pro | last post by:
Hi, I am creating textbox, radiobuttonlist and checkboxlist dynamically depending on data from a table. It is a questionnaire. I add the control on a Panel control during the 1st load_page event....
1
by: Kevin R | last post by:
This is one of the weirdest problems I have ever run into. I have had to trim down a bunch of code to give a sample that is more easily readable by those who will view this. Here is the problem:...
9
by: rn5a | last post by:
A Form has a DataGrid which displays records from a SQL Server 2005 DB table. Users can modify the records using this DataGrid for which I am using EditCommandColumn in the DataGrid. This is the...
5
by: Brent | last post by:
Ok everyone i have dealing with this problem for a week and its starting to get on my nerve. I am pretty new to the asp.net world. I am not new to .Net only asp.net. So i hate a snag. right now im...
5
by: ThunderMusic | last post by:
Hi, I always refer to this page to know the order of events in a page : http://weblogs.asp.net/jeff/archive/2004/07/04/172683.aspx but this time, I'm mystified... I have a Control called...
0
by: Syoam4ka | last post by:
My project is about jewellery. I have devided my jewelery into main types, which each one of them has sub types, and each one those sub types has the jewellery. I have a tabcontainer. It includes...
0
by: Charles Arthur | last post by:
How do i turn on java script on a villaon, callus and itel keypad mobile phone
0
by: emmanuelkatto | last post by:
Hi All, I am Emmanuel katto from Uganda. I want to ask what challenges you've faced while migrating a website to cloud. Please let me know. Thanks! Emmanuel
0
BarryA
by: BarryA | last post by:
What are the essential steps and strategies outlined in the Data Structures and Algorithms (DSA) roadmap for aspiring data scientists? How can individuals effectively utilize this roadmap to progress...
0
marktang
by: marktang | last post by:
ONU (Optical Network Unit) is one of the key components for providing high-speed Internet services. Its primary function is to act as an endpoint device located at the user's premises. However,...
0
by: Hystou | last post by:
Most computers default to English, but sometimes we require a different language, especially when relocating. Forgot to request a specific language before your computer shipped? No problem! You can...
0
jinu1996
by: jinu1996 | last post by:
In today's digital age, having a compelling online presence is paramount for businesses aiming to thrive in a competitive landscape. At the heart of this digital strategy lies an intricately woven...
0
by: Hystou | last post by:
Overview: Windows 11 and 10 have less user interface control over operating system update behaviour than previous versions of Windows. In Windows 11 and 10, there is no way to turn off the Windows...
0
tracyyun
by: tracyyun | last post by:
Dear forum friends, With the development of smart home technology, a variety of wireless communication protocols have appeared on the market, such as Zigbee, Z-Wave, Wi-Fi, Bluetooth, etc. Each...
0
agi2029
by: agi2029 | last post by:
Let's talk about the concept of autonomous AI software engineers and no-code agents. These AIs are designed to manage the entire lifecycle of a software development project—planning, coding, testing,...

By using Bytes.com and it's services, you agree to our Privacy Policy and Terms of Use.

To disable or enable advertisements and analytics tracking please visit the manage ads & tracking page.