2015-01-24 4 views
0

работает в aspx-странице, но не работает при управлении ascx. вот код ascx. Пожалуйста, дайте мне знать, что мне не хватает. Все остальные элементы управления огнем, но таймер не срабатывает в моей странице ASPX:управление таймером не работает на странице ascx

<asp:ScriptManager ID= "SM1" runat="server" EnablePartialRendering="true"> 
</asp:ScriptManager> 
<asp:UpdatePanel id="updPnl" runat="server" UpdateMode="Conditional" ChildrenAsTriggers="TRUE"> 
<Triggers> 
<asp:AsyncPostBackTrigger ControlID="timer1" EventName="Tick" /> 

</Triggers> 
<ContentTemplate> 
    <asp:Timer ID="timer1" runat="server" Interval="1000" OnTick="timer1_tick"></asp:Timer> 
    <asp:Label ID="lblTimer" runat="server" Interval="1000" Enabled="False"></asp:Label> 

protected void Page_Load(object sender, EventArgs e) 
     { 
if (!SM1.IsInAsyncPostBack) 
       Session["timeout"] = DateTime.Now.AddMinutes(5).ToString(); 
      if (!IsPostBack) 
      { 
       //ScriptManager.RegisterStartupScript(this, this.GetType(), "test", "javascript:f1();", true); 
       fillQuestionsLabel(); 

       timer1.Enabled = true; 
      } 

     } 
     protected void timer1_tick(object sender, EventArgs e) 
     { 
      if (0 > DateTime.Compare(DateTime.Now, 
      DateTime.Parse(Session["timeout"].ToString()))) 
      { 
       lblTimer.Text = "Number of Minutes Left: " + 
       ((Int32)DateTime.Parse(Session["timeout"]. 
       ToString()).Subtract(DateTime.Now).TotalMinutes).ToString(); 
      } 
     } 

ответ

0

ссылок таймера Timer1, но когда пользовательский элемент управления визуализируется у него будет вновь присвоенное имя, потому что он находится на контроле пользователя. Сделайте View View, и вы увидите, что это так.

<asp:AsyncPostBackTrigger ControlID="timer1" EventName="Tick" /> 

Добавить ClientIDMode = "Статический", как показано ниже. Это предполагает, что этот элемент управления удаляется только на странице один раз, в противном случае вы должны установить ControlID таймеров-отправителей таймера1 на Timer1.ClientID()

<asp:Timer ID="timer1" ClientIDMode="Static" runat="server" Interval="1000" OnTick="timer1_tick"></asp:Timer>