2013-09-26 7 views
0

У меня есть контроль таймера внутри панели обновления, и таймер должен выполнить некоторый javascript.Невозможно выполнить javascript для управления таймером внутри UpdatePanel

<asp:ScriptManager ID="ScriptManager1" runat="server"></asp:ScriptManager> 

    <asp:UpdatePanel ID="ImagePanel" runat="server" UpdateMode="Conditional"> 
     <Triggers> 
      <asp:AsyncPostBackTrigger ControlID="Timer1" EventName="Tick" /> 
     </Triggers> 
     <ContentTemplate> 
      <asp:Timer ID="Timer1" runat="server" OnTick="SlideImages" Interval="4000"></asp:Timer> 
      <div id="slideshow" runat="server"> 
       <div runat="server" id="currentImageDiv" class="current"> 
        <img id="currentImage" src="" runat="server" class="slideImage current" /> 
        <asp:Label runat="server" id="currentImageCaption" CssClass="caption"></asp:Label> 
       </div> 
       <div runat="server" id="nextImageDiv" class="next"> 
        <img id="nextImage" src="" runat="server" class="slideImage next" /> 
        <asp:Label runat="server" id="nextImageCaption" CssClass="caption"></asp:Label> 
       </div> 
      </div> 
      <asp:HiddenField runat="server" ID="slideIndexField" Value="1"/> 
     </ContentTemplate> 
    </asp:UpdatePanel>  

код позади:

protected void SlideImages(object sender, EventArgs e) 
{ 
    ScriptManager.RegisterStartupScript(
      Timer1, 
      Timer1.GetType(), 
      "SlideImages", 
      @"<script src='Scripts/jquery-1.10.1.min.js' type='text/javascript'></script> 
      <script type='text/javascript'> 
       alert('script executed'); 
      </script>", 
      true); 
} 

Но это, кажется, не работает, то, что я должен изменить?

ответ

0

Ой, ошибка была последним параметром RegisterStartupScript: он должен быть установлен в ложной, потому что у меня есть уже включены теги скриптов.

0

Вы можете добавить обработчик Sys.WebForms.PageRequestManager.instance. End Request event

и непосредственно вызывать клиент сторона функция

var prm = Sys.WebForms.PageRequestManager.getInstance(); 
prm.add_endRequest(endRequestHandler); 

function endRequestHandler(){ 
alert('script executed'); 
} 
Смежные вопросы