Want to protect your cyber security and still get fast solutions? Ask a secure question today.Go Premium

x
  • Status: Solved
  • Priority: Medium
  • Security: Public
  • Views: 427
  • Last Modified:

Having trouble with FindControl

I have an application where I need to perform operations on various controls throughout the page based on my repeater data.  I need to populate Label Text, set Visible to true/false, etc.

The basic structure (framework) of my page is as such:

Repeater 1
>> Label 1
>> Literal 1

>> Nested Repeater
>> >> Label 2
>> >> Hyperlink 2

>> >> >> Nested Nested Repeater
>> >> >> Hyperlink 3
>> >> >>  END nested Repeater

>> END nested Repeater

END Repeater1

I am having an impossible time knowing
(1) When to check for the control (i.e. what can I do during Page_Load, or DataBind, etc), and
(2) the syntax of the control  (i.e.  (Label)Page.FindControl("controName");   OR  (Label)This.FindControl("controlName")  OR (Label)e.Item.FindControl("controlName")

The error I keep getting is "Object reference not set to an instance of an object"

Can anyone clear this up for me?
0
vcbertini
Asked:
vcbertini
1 Solution
 
Alfred A.Commented:
Why don't you try using a FindControlRecursive function to locate your control?

Check my comments on this EE links:

http://www.experts-exchange.com/Programming/Languages/.NET/ASP.NET/Q_25738395.html

http://www.experts-exchange.com/Programming/Languages/.NET/Visual_Basic.NET/Q_25836779.html
0
 
AlfredRobotCommented:
If you can provide your aspx file and source code, it will be easier for us to help you.
And if you want to find controls inside the repeater, page.findcontrol() will not help. e.item.findcontrol() is a good one, but still, life will be easier if you can provide source code.

Generally, this article is a very good one concerning "FindControl" in asp.net
http://odetocode.com/Articles/116.aspx
0
 
MajorBigDealCommented:
I always have the same problem. if you don't want to do the recursive thing then start in the Page_Load, and use this to get the top level control.  
 
Control pageControl = ((Control)sender).Parent;

Then using the debugger you can work your way down to the control you are interested in. Once you find it, in the debugger, you will then know how to code your way down to it. In your code, check for null at each step to avoid the "object reference not set" problem.  

0
 
vcbertiniAuthor Commented:
That seems to work - took an example of the code off of a different post.
0

Featured Post

Technology Partners: We Want Your Opinion!

We value your feedback.

Take our survey and automatically be enter to win anyone of the following:
Yeti Cooler, Amazon eGift Card, and Movie eGift Card!

Tackle projects and never again get stuck behind a technical roadblock.
Join Now