title: Text-property of my ASP.NET Composite-control doesn't set text-changes
body: <p>I have build a composite control which renders a TextControl or a RADEditor control, dependable of a property a set. Both rendered controls have a Text-property. The problem is that when I change the Textvalue on my webpage (when it is running) it won't set the new Text-value but the old Textvalue instead. </p>
  
  <p>Does anyboy know what I'm doing wrong?</p>
  
  <p>Below the code of my composite-control.</p>
  
  <pre><code>using System;
  using System.Collections.Generic;
  using System.ComponentModel;
  using System.Linq;
  using System.Text;
  using System.Web;
  using System.Web.UI;
  using System.Web.UI.WebControls;
  using Telerik.Web.UI;
  using System.Web.UI.HtmlControls;
  using Framework.WebControls;
  
  namespace Components.Broadcasting.Controls
  {
  
      [DefaultProperty("Text")]
      [ToolboxData("&lt;{0}:TextControl runat=server&gt;&lt;/{0}:TextControl&gt;")]
      public class TextControl : CompositeControl, INamingContainer, IDisposable
      {       
          //private Control _myControl;
          private Label _myLabel;
          private HtmlGenericControl _contentContainer;
          private HtmlGenericControl _labelBlock;
          private HtmlGenericControl _inputBlock;
  
          public override ControlCollection Controls
          {
              get
              {
                  EnsureChildControls();
                  return base.Controls;
              }
          }
  
          [Bindable(true)]
          [Category("Appearance")]
          [DefaultValue("")]
          [Localizable(true)]
          public string Text
          {
              get
              {                
                  String s = (String)ViewState["Text"];
                  return ((s == null) ? String.Empty : s);
              }
  
              set
              {                
                  ViewState["Text"] = value;
              }
          }
  
          [Bindable(true)]
          [Category("Campagne Broadcasting")]
          [DefaultValue("Naam label")]
          [Description("Label horende bij het contenttype")]        
          public string Label
          {
              get
              {
                  String s = (String)ViewState["label"];
                  return ((s == null) ? String.Empty : s);
              }
  
              set
              {
                  ViewState["label"] = value;
              }
          }
  
          [Bindable(true)]
          [Category("Campagne Broadcasting")]
          [DefaultValue(XMLElementType.Heading)]
          [Description("Nog in te vullen")]
          public XMLElementType XMLElementType
          {
              get
              {
                  if (ViewState["textContentType"] == null) return XMLElementType.Heading;
                  return (XMLElementType)ViewState["textContentType"];
              }
              set
              {
                  ViewState["textContentType"] = value;
              }
          }
  
          [Bindable(true)]
          [Category("Campagne Broadcasting")]
          [DefaultValue("0")]
          [Description("Layoutposition of the contentitem")]
          public int ContentPosition
          {
              get
              {
                  if (ViewState["contentPosition"] == null) return 0;
                  return (int)ViewState["contentPosition"];
              }
              set
              {
                  ViewState["textContentType"] = value;
              }
          }
  
          [Bindable(true)]
          [Category("Campagne Broadcasting")]
          [DefaultValue("0")]
          [Description("Layoutposition of the contentitem")]
          public XmlOutputGroup XMLOutputGroup
          {
              get
              {
                  if (ViewState["xmlOutputGroup"] == null) return 0;
                  return (XmlOutputGroup)ViewState["xmlOutputGroup"];
              }
              set
              {
                  ViewState["xmlOutputGroup"] = value;
              }
          }
  
          protected override void RecreateChildControls()
          {
              EnsureChildControls();
          }
  
          protected override void CreateChildControls()
          {
              Controls.Clear();
  
              string containerClass = "contentContainer";
              string labelBlock = "labelBlock";
              string inputBlock = "inputBlock";
  
              _myLabel = new Label();
              _myLabel.Text = Label;
              _contentContainer = new HtmlGenericControl("div");
              _contentContainer.Attributes["class"] = containerClass;
  
              _labelBlock = new HtmlGenericControl("div");
              _labelBlock.Attributes["class"] = labelBlock;
              _inputBlock = new HtmlGenericControl("div");
              _inputBlock.Attributes["class"] = inputBlock;
  
              _contentContainer = new HtmlGenericControl("div");
              _contentContainer.Attributes["class"] = containerClass;
              _labelBlock.Controls.Add(_myLabel);
  
              if (XMLElementType == XMLElementType.Heading)
              {
                  TextBox _myControl = new TextBox();
                  _myControl.Text = this.Text;
                  _inputBlock.Controls.Add(_myControl);
              }
              else if (XMLElementType == XMLElementType.Content)
              {
                  RadEditor _myControl = new RadEditor();
                  _myControl.Content = this.Text;
                  _inputBlock.Controls.Add(_myControl);                
  
              }
              else if (XMLElementType == XMLElementType.SlideTypeName)
              {
                  TextBox _myControl = new TextBox();
                  _myControl.Text = this.Text;
                  _inputBlock.Controls.Add(_myControl);
              }
              else if (XMLElementType == XMLElementType.Image)
              {
                  ImageUploader _myControl = new ImageUploader();                
                  _inputBlock.Controls.Add(_myControl);
              }
  
              _contentContainer.Controls.Add(_labelBlock);
              _contentContainer.Controls.Add(_inputBlock);
  
              this.Controls.Add(_contentContainer);           
          }
  
          protected override void RenderContents(HtmlTextWriter output)
          {           
              _contentContainer.RenderControl(output);            
          }
      }
  }
  </code></pre>
  
  <p>Thanks in advance</p>
  
  <p>Kind regards, Patrick</p>