title: UpdatePanel.update on timer.tick
body: <p>Yesterday I wrote simle example of updating UpdatePanel on timer.tick event. I noticed that  on timer.tick event code of my form class is running from the beginning. Why? How to avoid it?</p>
  
  <p><img src="https://i.stack.imgur.com/lDeGx.png" alt="And how to avoid it???"></p>
  
  <p>WebForm1.aspx:</p>
  
  <pre><code>&lt;%@ Page Language="C#" AutoEventWireup="true" CodeBehind="WebForm1.aspx.cs"          Inherits="TestApp.WebForm1" %&gt;
  
  &lt;!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"&gt;
  &lt;html xmlns="http://www.w3.org/1999/xhtml"&gt;
  &lt;head runat="server"&gt;
      &lt;title&gt;&lt;/title&gt;
  &lt;/head&gt;
  &lt;body&gt;
      &lt;form id="form1" runat="server"&gt;
      &lt;div&gt;
          &lt;asp:ScriptManager ID="ScriptManager1" runat="server"&gt;
          &lt;/asp:ScriptManager&gt;
          &lt;asp:UpdatePanel ID="UpdatePanel1" runat="server" ChildrenAsTriggers="False" 
               UpdateMode="Conditional" onload="UpdatePanel1_Load"&gt;
              &lt;ContentTemplate&gt;
                  &lt;asp:Label ID="Label1" runat="server"&gt;&lt;/asp:Label&gt;
                  &lt;asp:Timer ID="Timer1" runat="server" Interval="5000" ontick="Timer1_Tick"&gt;
                  &lt;/asp:Timer&gt;
              &lt;/ContentTemplate&gt;
          &lt;/asp:UpdatePanel&gt;
      &lt;/div&gt;
      &lt;/form&gt;
  &lt;/body&gt;
  &lt;/html&gt;
  </code></pre>
  
  <p>WebForm1.aspx.cs:</p>
  
  <pre><code>namespace TestApp
  {
      public partial class WebForm1 : System.Web.UI.Page
      {
          static Random rnd = new Random();
  
          int b = rnd.Next(100);               // always 1 value
          protected void Page_Load(object sender, EventArgs e)
          {
  
          }
  
          protected void Timer1_Tick(object sender, EventArgs e)
          {
              UpdatePanel1.Update();
          }
  
          protected void UpdatePanel1_Load(object sender, EventArgs e)
          {
              int a = rnd.Next(100);           // changing value
              Label1.Text = a.ToString() + " - changing value&lt;br /&gt;" + b.ToString() + " - static value";
          }
      }
  }
  </code></pre>