Controls.Count, Controls.IsSynchronized, and Controls.SyncRoot

  • Thread starter Nathan Sokalski
  • Start date
N

Nathan Sokalski

I have a section of my code in which I need to know how many child controls
a control has. Right now Controls.Count is returning the wrong value, which
I realize is because Controls.IsSynchronized is False. After spending a few
hours trying to figure out how I could determine the number of child
controls, I discovered that Controls.SyncRoot is somehow involved, but I had
trouble understanding exactly what I need to do. Could somebody please help
me? Thanks.
 
B

bruce barker

you are on the wrong track. unless you are spinning up new threads
during a page request and those threads are adding child controls, there
is no need to use Controls.IsSynchronized.

Controls.Count is only your controls immediate count. each of its child
controls can have children. also when you test it, all the children may
not be created.

what makes you think the count is wrong?

-- bruce (sqlwork.com)
 
M

Muhammad Naveed Yaseen

I have a section of my code in which I need to know how many child controls
a control has. Right now Controls.Count is returning the wrong value, which

Just a couple of points to consider,,,,

1) Controls.Count is the count of only immediate children, not the
grand-children.

2) Plain text (sometimes even a space), which apparently may not look
like control, become controls. To add complexity, it is not guaranteed
how many controls would this text divide into.
 
N

Nathan Sokalski

I know the count is wrong, because first of all, I used the Controls.Add()
method to add multiple Controls, so I know that there are more than 1. Also,
I did a Debug and looked at the Controls.Count property immediately before
and immediately after adding the control, and it had changed from 1 to 2.
And yet, on the next postback that same Control had a Controls.Count value
of 1 again instead of remaining at 2. This did not make since to me, so the
only possibility I could come up with (although I admit I have very little
experience with threads and synchronization, even though this is not a
multi-threaded application) was that it had something to do with all the
synchronization stuff I found while trying to find an answer. I'm totally
confused about this now. Any ideas?
 
M

Muhammad Naveed Yaseen

And yet, on the next postback that same Control had a Controls.Count value
of 1 again instead of remaining at 2.

Dynamically added controls do not survive post back. They need to be
added again in every postback.
 

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,731
Messages
2,569,432
Members
44,832
Latest member
GlennSmall

Latest Threads

Top