Control Tree Recursion Using ASP.NET 2.0
page 1 of 5
Published: 03 Aug 2006
Unedited - Community Contributed
In this article Tom examines how to recurse through a control tree using ASP.NET 2.0.
by Tom Blanchard
Average Rating: This article has not yet been rated.
Views (Total / Last 10 Days): 30742/ 52


Some people may have already read Steve Orr's Article on control tree recursion, and may be wondering what differences there may be when using the .NET Framework 2.0. When using the .NET Framework 2.0, one may throw all kinds of monkey wrenches into the situation.

One of these would be using a "Master Page". When using a "Master Page", you will only see one control, which will be the master page that your current page is inheriting. This creates a problem, when trying to access a control that lies within the page itself. When creating a page without utilizing a master page, you will also find it difficult to find your controls, if you loop through the "Page.Controls" collection. This particular issue has an easy fix. The fix is to reference the Form within the page and loop through its controls.

Listing 1

Control oFrm = Page.Form;
//loop through panel controls
foreach (Control oCtl in oFrm.Controls)
   //find your control and do with it as you like here

View Entire Article

User Comments

Title: very useful   
Name: shubha
Date: 2008-09-12 7:09:52 AM
this article was very useful for me. Actually i was struggling to find, how to find out the type of the control in a panel. Its a very simple solution to use 'is' operator. But i struggled a lot before finding this article..

thank u Tom Blanchard
Title: Very useful.   
Name: Dipal Bhavsar
Date: 2008-06-25 1:24:16 AM
Hi, this is very useful to me...

Dipal Bhavsar
Title: check the link from the article in the first paragraph   
Name: TB
Date: 2008-02-19 1:22:29 PM
It is just basically is an updated way to go through something similar in the 2.0 framework.
It is more of looping than recursing.
Title: Misleading   
Name: none
Date: 2008-02-19 12:48:02 PM
This is nice and all, but there isn't anything recursive about it.
Title: Just what I was looking for!   
Name: Will Asrari
Date: 2007-06-14 11:48:50 PM
Sweet. Thanks!
Title: Good Job   
Name: Tom Blanchard
Date: 2006-10-06 2:26:27 PM
Excellent Job Rizwan! I didn't even go into HTMLControls, but glad it was easy for you to adapt.
Title: Rizwan Gulamhussein   
Name: Control Tree Recursion Using ASP.NET 2.0
Date: 2006-10-06 1:48:45 AM
Sorry, by the way, I forgot to mention that your code as well as my own code snippet works.

Title: Control Tree Recursion Using ASP.NET 2.0   
Name: Rizwan Gulamhussein
Date: 2006-10-06 1:44:11 AM
Great article Tom.

In my code, I have a single gridview that contains HTML radio buttons and HTML checkboxes. Although intellisense displays the name of the gridview, the debugger complained.

What I did was this:

GridView targetGrid = (GridView)FindControl("TargetSegmentGridView");

foreach (GridViewRow row in targetGrid.Rows)

Happy coding! :)
Title: Error in text   
Name: Tom Blanchard
Date: 2006-08-07 11:43:56 AM
foreach(Control oCtl in ctl.Controls) {
Should read foreach(Control ctl1 in oCtl.Controls) {

Some of this was copied from actual code that I have used and some of the names were changed to protect the innocent, however, I apparently missed something.

My apologies.
Title: error   
Name: interesting
Date: 2006-08-07 11:25:12 AM
when I run this, i get the following error

: CS0103: The name 'ctl' does not exist in the current context

Product Spotlight
Product Spotlight 

Community Advice: ASP | SQL | XML | Regular Expressions | Windows

©Copyright 1998-2024  |  Page Processed at 2024-05-24 9:16:48 AM  AspAlliance Recent Articles RSS Feed
About ASPAlliance | Newsgroups | Advertise | Authors | Email Lists | Feedback | Link To Us | Privacy | Search