Hello Tim,
I moved the following codes into page_load and the pane could be found now.
Display = new Panel();
this.Controls.Add(Display);
String[] ids = new String[3];
ids[0] = "panel1";
ids[1] = "panel2";
ids[2] = "panel3";
foreach(Channel subchannel in current.Channels)
{
Panel channelPanel = new Panel();
channelPanel.ID = subchannel.Name;
Display.Controls.Add(channelPanel)
}
Also, I defined Dispaly as a global varialbe as other controls.
Please test it and let me know whether it is what you needed.
Best regards,
Yanhong Huang
Microsoft Online Partner Support
Get Secure! -
www.microsoft.com/security
This posting is provided "AS IS" with no warranties, and confers no rights.
--------------------
!Content-Class: urn:content-classes:message
!From: "Tim Pacl" <
[email protected]>
!Sender: "Tim Pacl" <
[email protected]>
!References: <
[email protected]> <
[email protected]>
!Subject: FindControl
!Date: Fri, 18 Jul 2003 06:05:43 -0700
!Lines: 49
!Message-ID: <
[email protected]>
!MIME-Version: 1.0
!Content-Type: text/plain;
! charset="iso-8859-1"
!Content-Transfer-Encoding: 7bit
!X-Newsreader: Microsoft CDO for Windows 2000
!X-MIMEOLE: Produced By Microsoft MimeOLE V5.50.4910.0300
!Thread-Index: AcNNLUuU99knTW0oSzKU98ENrW0k+w==
!Newsgroups: microsoft.public.dotnet.framework.aspnet
!Path: cpmsftngxa06.phx.gbl
!Xref: cpmsftngxa06.phx.gbl microsoft.public.dotnet.framework.aspnet:160247
!NNTP-Posting-Host: TK2MSFTNGXA14 10.40.1.166
!X-Tomcat-NG: microsoft.public.dotnet.framework.aspnet
!
!Is there no way of finding the embedded panel prior to
!rendering?
!
!>-----Original Message-----
!>Hi
!>
!>FindControl method is to locate a control with an ID
!>property of <<Control>> on the containing page.
!>
!>Check ChannelPanelId after adding the Display Panel.
!>
!>HTH
!>Ravikanth
!>
!>
!>>-----Original Message-----
!>>I know I am doing or understanding something wrong.
!This
!>>is a code snipet from a server control that accesses
!the
!>>MCMS channel structure to build a dynamic cascading
!menu
!>>system. While this is not the actual code (too
!>extensive)
!>>it performs the key function and provides the same
!>>unsatisfactory results:
!>>
!>>Channel current = CurrentContext.Channel;
!>>Panel Display = new Panel();
!>>
!>>foreach(Channel subchannel in current.Channels)
!>>{
!>> Panel channelPanel = new Panel();
!>> channelPanel.ID = subchannel.Name;
!>> Display.Controls.Add(channelPanel)
!>>}
!>>
!>>string chName = current.Channels[0].Name;
!>>Panel foundPanel = Display.FindControl(chName);
!>>
!>>It seems that since there are 3 subchannels to current,
!>>foundPanel should return the first Panel added in the
!>>foreach loop. It doesn't. It returns null. Why?
!>>
!>>Thanks.
!>>.
!>>
!>.
!>
!