| 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] |