i have 6 textboxes which i want to iterate.
they are however in a TD in a TR in a TABLE in a PANEL etc.
the only way i’ve figured out to iterate them is in this way:
this.Controls[0].Controls[3].Controls[7].Controls
that’s not only errorprone, but also hard to come up with.
but this.FindControl (to find one by name) doesn’t work either, does findcontrol also only search in the direct child, and not the whole hierarchie?
so basicly what i’m looking for is to iterate ALL controls in the page, no matter in which level of the hierarchie, to check if it’s a textbox.
Is there a way to do that?
EDIT: i don’t want to find them by their name (they are server controls so i could do that) because i would have to modify that code every time i add a textbox. By iterating the form i would not have to do that.
FindControl searches the hierarchy but it doesn’t go into controls that are an INamingContainer
Basically it defines a boundary to avoid naming collisions. Consider how hard it’d be if all your control IDs really had to be unique.
Note this information is also in the FindControl remarks. Tip: Always read the remarks.
By doing so you could navigate to the control you want going through only the naming containers & calling FindControl at each level i.e. FindControl(“SomeNamingContainer”).FindControl(“AChildContainer”)
That’s not necessarily practical, and depending on what you’re doing you really just need to get All TextBoxes.