469,953 Members | 2,392 Online
Bytes | Developer Community
New Post

Home Posts Topics Members FAQ

Post your question to a community of 469,953 developers. It's quick & easy.

Panel Controls inside a custom server control in ASP.NET

I want to create a simple server control that does thing like:

<Mc:CollapsibleControl TitlePanelID="panel1" BodyPanelID="Panel2">
<asp:Panel ID="panel1">
...
</asp:Panel>

<asp:Panel ID="panel2">
...
</asp:Pane2>
</Mc:CollaspableControl>

I based my custom web server control on the example you can find on:
http://msdn2.microsoft.com/en-us/library/ms178654.aspx

I defined a "Panels" property that return an array of "Panel" class.

What should I change to make it work? Thanks

Charles Zhang
Oct 6 '06 #1
3 1678
Hi Charles,

You need to apply ParseChildrenAttribute(false) on your custom control to
let the default ControlBuilder to interpret the content within your
control's begin and end tags. The parsed objects are added to your control
via the AddParsedSubObject method of your control. By default, the
AddParsedSubObject method expect server controls and adds these parsed
controls into your control's Controls collection as child controls.

Since you're only wanting Panel controls added to your controls collection,
you can do this by:

[ParseChildren(false)]
public class C1 : WebControl
{
private List<Panelm_panels = new List<Panel>();

protected override void AddParsedSubObject(object obj)
{
if (obj is Panel)
{
Panel p = (Panel)obj;
m_panels.Add(p);
Controls.Add(p);
}
}

public List<PanelPanels
{
get { return m_panels; }
}
}

Sincerely,
Walter Wang (wa****@online.microsoft.com, remove 'online.')
Microsoft Online Community Support

==================================================
Get notification to my posts through email? Please refer to
http://msdn.microsoft.com/subscripti...ult.aspx#notif
ications. If you are using Outlook Express, please make sure you clear the
check box "Tools/Options/Read: Get 300 headers at a time" to see your reply
promptly.

Note: The MSDN Managed Newsgroup support offering is for non-urgent issues
where an initial response from the community or a Microsoft Support
Engineer within 1 business day is acceptable. Please note that each follow
up response may take approximately 2 business days as the support
professional working with you may need further investigation to reach the
most efficient resolution. The offering is not appropriate for situations
that require urgent, real-time or phone-based interactions or complex
project analysis and dump analysis issues. Issues of this nature are best
handled working with a dedicated Microsoft Support Engineer by contacting
Microsoft Customer Support Services (CSS) at
http://msdn.microsoft.com/subscripti...t/default.aspx.
==================================================

This posting is provided "AS IS" with no warranties, and confers no rights.

Oct 6 '06 #2
I got the problem resolved. The code I wrote is working. However, the
web page does not use the new assembly until I restarted the web site.
To avoid the problem during debugging, I moved the custom user control
to "App_Code".


Charles Zhang wrote:
I want to create a simple server control that does thing like:

<Mc:CollapsibleControl TitlePanelID="panel1" BodyPanelID="Panel2">
<asp:Panel ID="panel1">
...
</asp:Panel>

<asp:Panel ID="panel2">
...
</asp:Pane2>
</Mc:CollaspableControl>

I based my custom web server control on the example you can find on:
http://msdn2.microsoft.com/en-us/library/ms178654.aspx

I defined a "Panels" property that return an array of "Panel" class.

What should I change to make it work? Thanks

Charles Zhang

Oct 6 '06 #3
Hi Charles,

Thanks for the update.

Is your web application migrated from ASP.NET 1.1? Or, are you using the
Web Application Project add-on for VS2005?

As for VS2005, it's recommened to put classes in the App_Code folder.

Regards,
Walter Wang (wa****@online.microsoft.com, remove 'online.')
Microsoft Online Community Support

==================================================
When responding to posts, please "Reply to Group" via your newsreader so
that others may learn and benefit from your issue.
==================================================

This posting is provided "AS IS" with no warranties, and confers no rights.

Oct 9 '06 #4

This discussion thread is closed

Replies have been disabled for this discussion.

Similar topics

3 posts views Thread by Fabrizio | last post: by
3 posts views Thread by TT (Tom Tempelaere) | last post: by
1 post views Thread by Tia Carr | last post: by
4 posts views Thread by Alexandre Soares | last post: by
2 posts views Thread by Raghu Raman | last post: by
15 posts views Thread by Arpan | last post: by
4 posts views Thread by tshad | last post: by
By using this site, you agree to our Privacy Policy and Terms of Use.