title: Controls within .ascx are not displaying their new value on postback
body: <p>This seems like an elementary issue but it has me stumped.</p>
  
  <p>I have a main page which loads a custom control (.ascx) on page_load.</p>
  
  <p>This custom control has two fields. One of them being a dropdownlist and the other being a text box. When the dropdownlist changes value it triggers a post back, some logic is executed server side and a value is generated for the textbox. I stepped through the code and the value is created and assigned correctly. However, when the page is rendered the value does not change.</p>
  
  <p>If I change the textbox value to "QQQ" and trigger the postback, "QQQ" stays in the textbox so I can verify viewstate is working. </p>
  
  <p>Is there any reason why the generated value is not being displayed in the form on postback. This process works fine on the initial page load.</p>
  
  <p><strong>.aspx.cs</strong></p>
  
  <pre><code>protected void Page_Load(object sender, EventArgs e)
  {
     string ascxPath = @"~/_CONTROLTEMPLATES/TRC_BITS.ascx";
     TRC_BITS control = Page.LoadControl(ascxPath) as TRC_BITS;
     phForm.Controls.Add(control);
  }
  </code></pre>
  
  <p><strong>.ascx</strong></p>
  
  <pre><code>   &lt;asp:TextBox ID="message" runat="server" TextMode="MultiLine" /&gt;&lt;br/&gt;
     &lt;asp:DropDownList ID="year" runat="server" AutoPostBack="true"&gt;
        &lt;asp:ListItem Text="2011"&gt;2011&lt;/asp:ListItem&gt;
        &lt;asp:ListItem Text="2012"&gt;2012&lt;/asp:ListItem&gt;
        &lt;asp:ListItem Text="2013"&gt;2013&lt;/asp:ListItem&gt;
     &lt;/asp:DropDownList&gt;
  </code></pre>
  
  <p><strong>.ascx.cs</strong></p>
  
  <pre><code>protected void Page_Load(object sender, EventArgs e)
  {
      if (!Page.IsPostBack)
      {
          year.SelectedValue = DateTime.Now.Year.ToString();
      }
      if (year.SelectedValue == 2012)
         message.Text = "ABC";
      else
         message.Text = "XYZ";
  }
  </code></pre>