Can't set value to the property "Width" of my custom webcontrol

Discussion in 'ASP .Net Web Controls' started by Brook, Nov 29, 2007.

  1. Brook

    Brook Guest

    In webform.aspx: <cc:ctlB ID="ctl1" runat="server" Width="200px" />

    If set value to width property, I will get a error that say ctlB.Page is null. This control will be fine with no width property, why?

    Could anybody help me ? thanks



    ctlA.cs
    ----------------------------
    [
    AspNetHostingPermission(SecurityAction.Demand, Level = AspNetHostingPermissionLevel.Minimal),
    AspNetHostingPermission(SecurityAction.InheritanceDemand, Level = AspNetHostingPermissionLevel.Minimal),
    DefaultProperty("Text"),
    ValidationProperty("Text"),
    ToolboxData("<{0}:ctlA runat=\"server\"> </{0}:ctlA>")
    ]
    public class ctlA : WebControl, INamingContainer
    {
    protected TextBox _textBox;
    protected HiddenField _hiddenBox;

    [Bindable(false), DefaultValue(""), TypeConverter(typeof(UnitConverter))]
    public override Unit Width
    {
    get
    {
    EnsureChildControls();
    return this._textBox.Width;
    }
    set
    {
    EnsureChildControls();
    this._textBox.Width = value;
    }
    }

    public override bool EnableViewState
    {
    get
    {
    EnsureChildControls();
    return this._textBox.EnableViewState;
    }
    set
    {
    EnsureChildControls();
    this._textBox.EnableViewState = value;
    this._hiddenBox.EnableViewState = value;
    this.EnableViewState = value;
    }
    }

    protected override void CreateChildControls()
    {
    this._textBox = new TextBox();
    this._textBox.ID = "Name";
    this._textBox.ReadOnly = this.ReadOnly;
    this._hiddenBox = new HiddenField();
    this._hiddenBox.ID = "Value";

    this.Controls.Add(this._textBox);
    this.Controls.Add(this._hiddenBox);
    }

    protected override void Render(HtmlTextWriter writer)
    {
    EnsureChildControls();
    base.Render(writer);
    }

    public override ControlCollection Controls
    {
    get
    {
    EnsureChildControls();
    return base.Controls;
    }
    }

    public ctlA()
    : base(HtmlTextWriterTag.Span)
    {
    }
    }


    --------------------------------------------------------------------------------

    ctlB.cs
    ------------------------------

    [ToolboxData("<{0}:ctlB runat=\"server\"> </{0}:ctlB>")]
    public class ctlB : ctlA
    {
    internal Image _schImage;

    public ctlB()
    : base()
    {
    }

    protected override void CreateChildControls()
    {
    base.CreateChildControls();

    this._schImage = new Image();
    this._schImage.ID = "imgButton";
    this._schImage.Attributes["align"] = "absmiddle";

    this._schImage.Attributes["onclick"] = String.Format("__OpenDialog('{0}', null, {1}, {2}, '{3}', '{4}', {5});",
    Page.ResolveUrl(this.DialogPagePath), this.DialogWidth.ToString(), this.DialogHeight.ToString(), this._textBox.ClientID, this._hiddenBox.ClientID, (this.DialogMode == DialogMode.Model) ? "true" : "false");

    this.Controls.Add(_schImage);
    }

    protected override void OnPreRender(EventArgs e)
    {
    base.OnPreRender(e);
    this.Page.ClientScript.RegisterClientScriptResource(this.GetType(), "OpenDialog.js");
    }

    public override ControlCollection Controls
    {
    get
    {
    EnsureChildControls();
    return base.Controls;
    }
    }
    }
    Brook, Nov 29, 2007
    #1
    1. Advertising

Want to reply to this thread or ask your own question?

It takes just 2 minutes to sign up (and it's free!). Just click the sign up button to choose a username and then you can ask your own questions on the forum.
Similar Threads
  1. AndrewF
    Replies:
    1
    Views:
    762
    Bruce Barker
    Oct 10, 2005
  2. Brook
    Replies:
    2
    Views:
    418
    Brook
    Dec 2, 2007
  3. Fabricio

    Custom webcontrol that references another webcontrol

    Fabricio, Sep 21, 2005, in forum: ASP .Net Building Controls
    Replies:
    0
    Views:
    174
    Fabricio
    Sep 21, 2005
  4. Peter Morris [Air Software Ltd]

    WebControl with non-WebControl property

    Peter Morris [Air Software Ltd], Dec 7, 2004, in forum: ASP .Net Web Controls
    Replies:
    1
    Views:
    129
    Peter Morris [Air Software Ltd]
    Dec 7, 2004
  5. Curt_C [MVP]

    Custom WebControl, custom property list

    Curt_C [MVP], Sep 1, 2005, in forum: ASP .Net Web Controls
    Replies:
    0
    Views:
    175
    Curt_C [MVP]
    Sep 1, 2005
Loading...

Share This Page