Connecting Tech Pros Worldwide Help | Site Map

Custom Control with a complex property type

  #1  
Old February 14th, 2006, 11:25 PM
Jeremy Chapman
Guest
 
Posts: n/a
I have a property will an array of webcontrols.

The control features a custom property editor which can add and remove web
controls to the array, but how do I persist the informtion by serializing it
to the aspx page?

For example, right now, here is what the html looks like when I drag my
control on to the page and add some web controls to the ControlList
property:

<myasp:MyControl id="MyControl6" runat="server" Height="32px" Width="152px"
ControlList="WebControl[] Array"></myasp:MyControl>

What I want is for the ControlList property to serialize something like:

<myasp:MyControl id="MyControl6" runat="server" Height="32px" Width="152px">
<ControlList>
<asp:linkbutton id="LinkButton1"
runat="server">LinkButton</asp:linkbutton>
<asp:imagebutton id="ImageButton1" runat="server"></asp:imagebutton>
<asp:button id="Button1" runat="server" Text="Button"></asp:button>
<asp:hyperlink id="HyperLink1"
runat="server">HyperLink</asp:hyperlink>
<asp:label id="Label1" runat="server">Label</asp:label>
</ControlList>
</myasp:MyControl>

Is this possible?


  #2  
Old February 15th, 2006, 12:45 AM
Jeremy Chapman
Guest
 
Posts: n/a

re: Custom Control with a complex property type


I've solved the first issue by adding the following attribute to my custom
property:

[DesignerSerializationVisibility(DesignerSerializat ionVisibility.Content),
NotifyParentProperty(true),
PersistenceMode(PersistenceMode.InnerProperty)]

This causes the html in my aspx page to look like:

<myasp:MyControl id="MyControl1" runat="server" Width="88px" Height="266px">
<ControlList>
<asp:Button ID="frmControlButton0"></asp:Button>
</ControlList>
</myasp:MyControl>

But now, if I close my web form and re-open it, Visual studio can't create
the control on my page, I get an error '' could not be set on property
ControlList. What does this mean?

Here is the relevant code to my control:

[DefaultProperty("ControlList"),
ToolboxData("<{0}:MyControl runat=server></{0}:MyControl>")]
public class MyControl : System.Web.UI.WebControls.WebControl
{
private System.Web.UI.WebControls.WebControl[] pControls_m = null;

[Category("Appearance"),DefaultValue(""),
Editor(typeof(ControlListEditor),
typeof(System.Drawing.Design.UITypeEditor))]
[DesignerSerializationVisibility(DesignerSerializat ionVisibility.Content),
NotifyParentProperty(true),
PersistenceMode(PersistenceMode.InnerProperty)]
public System.Web.UI.WebControls.WebControl[] ControlList
{
get
{
return pControls_m;
}
set
{
pControls_m = value;
}
}
}


"Jeremy Chapman" <please@Idontlikespam> wrote in message
news:%23yWPbubMGHA.536@TK2MSFTNGP09.phx.gbl...[color=blue]
>I have a property will an array of webcontrols.
>
> The control features a custom property editor which can add and remove web
> controls to the array, but how do I persist the informtion by serializing
> it to the aspx page?
>
> For example, right now, here is what the html looks like when I drag my
> control on to the page and add some web controls to the ControlList
> property:
>
> <myasp:MyControl id="MyControl6" runat="server" Height="32px"
> Width="152px" ControlList="WebControl[] Array"></myasp:MyControl>
>
> What I want is for the ControlList property to serialize something like:
>
> <myasp:MyControl id="MyControl6" runat="server" Height="32px"
> Width="152px">
> <ControlList>
> <asp:linkbutton id="LinkButton1"
> runat="server">LinkButton</asp:linkbutton>
> <asp:imagebutton id="ImageButton1"
> runat="server"></asp:imagebutton>
> <asp:button id="Button1" runat="server" Text="Button"></asp:button>
> <asp:hyperlink id="HyperLink1"
> runat="server">HyperLink</asp:hyperlink>
> <asp:label id="Label1" runat="server">Label</asp:label>
> </ControlList>
> </myasp:MyControl>
>
> Is this possible?
>[/color]


Closed Thread


Similar Threads
Thread Thread Starter Forum Replies Last Post
Inclusion of user control within custom control =?Utf-8?B?UmljaEI=?= answers 4 October 6th, 2008 10:35 AM
RE: WPF: Custom control and resorce files in a different assembly. Linda Liu[MSFT] answers 7 July 11th, 2008 10:55 AM
How to get the data from an ObjectDataSource in a custom control Rolf Welskes answers 14 November 2nd, 2006 01:15 AM
Complex Custom Control Conundrum Iain answers 0 February 17th, 2006 08:55 PM