Connecting Tech Pros Worldwide Help | Site Map

Custom Control with a complex property type

 
LinkBack Thread Tools Search this Thread
  #1  
Old February 14th, 2006, 10:25 PM
Jeremy Chapman
Guest
 
Posts: n/a
Default Custom Control with a complex property type

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 14th, 2006, 11:45 PM
Jeremy Chapman
Guest
 
Posts: n/a
Default 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]


 

Bookmarks

Thread Tools Search this Thread
Search this Thread:

Advanced Search

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is Off
HTML code is Off
Trackbacks are On
Pingbacks are On
Refbacks are On

Popular Articles

What is Bytes?

We are a network of experts and professionals in IT and software development that help one another with answers to tough questions and share insights. Get the best answers to your questions from over 220,662 network members.