U
Umut Tezduyar
I have build a sample control but the designer doesn't communicate with it
to parse the childen property. Please if you are an control developer, spend
your 10 minutes to solve my problem. I have read so many articles and books
to solve it but i couldn't.
Here is the code sample:
---------- Asp Page ----------------
<form id="Form1" method="post" runat="server">
<cc1:Umut runat="server" id="umut1ew">
<Tab name="main">
<Tabs>
<cc1:Tab name="sub1"/>
<cc1:Tab name="sub2"/>
</Tabs>
</Tab>
</cc1:Umut>
</form>
--------------------------------------
------------ Class Tab-----------------
[
System.ComponentModel.TypeConverter(typeof(System.ComponentModel.ExpandableObjectConverter)), System.Web.UI.ControlBuilder(typeof(System.Web.UI.ControlBuilder)) ] public class Tab { private ArrayList _tabs; private string _name; public Tab() { } [ System.Web.UI.PersistenceMode(System.Web.UI.PersistenceMode.InnerProperty) ] public ArrayList Tabs { get { if (this._tabs == null) this._tabs = new System.Collections.ArrayList(); return this._tabs; } set { this._tabs = value; } } [ System.Web.UI.PersistenceMode(System.Web.UI.PersistenceMode.Attribute) ] public string Name { get { return this._name; } set { this._name = value; } } }-----------------------------------------------------Class Umut------------------- [ System.ComponentModel.Designer(typeof(System.Web.UI.Design.ControlDesigner)), System.Web.UI.ParseChildren(true) ] public class Umut : System.Web.UI.Control { private Tab _tab; public Tab Tab { get { if (this._tab == null) { this._tab = new Tab(); this._tab.Name = "Default"; } return this._tab; } set { this._tab = value; } } protected override void Render(System.Web.UI.HtmlTextWriter writer) { this.RenderTab (writer, this.Tab); } private void RenderTab(System.Web.UI.HtmlTextWriter writer, Tab tab) { writer.Write (string.Format (">>Tab name={0}<br>", tab.Name)); foreach (Tab t in tab.Tabs) this.RenderTab (writer, t); } }-----------------------------------------------------------------
to parse the childen property. Please if you are an control developer, spend
your 10 minutes to solve my problem. I have read so many articles and books
to solve it but i couldn't.
Here is the code sample:
---------- Asp Page ----------------
<form id="Form1" method="post" runat="server">
<cc1:Umut runat="server" id="umut1ew">
<Tab name="main">
<Tabs>
<cc1:Tab name="sub1"/>
<cc1:Tab name="sub2"/>
</Tabs>
</Tab>
</cc1:Umut>
</form>
--------------------------------------
------------ Class Tab-----------------
[
System.ComponentModel.TypeConverter(typeof(System.ComponentModel.ExpandableObjectConverter)), System.Web.UI.ControlBuilder(typeof(System.Web.UI.ControlBuilder)) ] public class Tab { private ArrayList _tabs; private string _name; public Tab() { } [ System.Web.UI.PersistenceMode(System.Web.UI.PersistenceMode.InnerProperty) ] public ArrayList Tabs { get { if (this._tabs == null) this._tabs = new System.Collections.ArrayList(); return this._tabs; } set { this._tabs = value; } } [ System.Web.UI.PersistenceMode(System.Web.UI.PersistenceMode.Attribute) ] public string Name { get { return this._name; } set { this._name = value; } } }-----------------------------------------------------Class Umut------------------- [ System.ComponentModel.Designer(typeof(System.Web.UI.Design.ControlDesigner)), System.Web.UI.ParseChildren(true) ] public class Umut : System.Web.UI.Control { private Tab _tab; public Tab Tab { get { if (this._tab == null) { this._tab = new Tab(); this._tab.Name = "Default"; } return this._tab; } set { this._tab = value; } } protected override void Render(System.Web.UI.HtmlTextWriter writer) { this.RenderTab (writer, this.Tab); } private void RenderTab(System.Web.UI.HtmlTextWriter writer, Tab tab) { writer.Write (string.Format (">>Tab name={0}<br>", tab.Name)); foreach (Tab t in tab.Tabs) this.RenderTab (writer, t); } }-----------------------------------------------------------------