I didn't completely follow your problem, but I'll take my best shot.
It sounds like you have an ASP.NET page, that has an iframe in it that refers to another ASP.NET page, and in that page that was requested by the iframe you want to modify the visibility of the item contained in the page that contains the iframe.
If my understanding of your problem is correct, then you have some somewhat nasty problems here.
- What's actually happening at the browser level is the first page gets loaded, and that page has an iframe in it that is making a second request to the server.
- This second request can't FindControl your control, because it isn't in the same page, and isn't alive during that request.
So you have some alternatives here:
- Get rid of the iframe and use a panel. This will put them both in the same request, and able to find each other.
- (Additionally) When you do this you are going to want to use Page.FindControl() not Parent.FindControl() as the FindControl method just searches through the Control's child control collection, and I presume your control will be somewhere else on the page.
- On the client side in the iframe you could use some javascript code to access the outer page's DOM, and set the visibility of it there.