2015-03-24 1 views
2

У меня есть следующий UpdatePanel:ImageButton в UpdatePanel срабатывает только на первой загрузке страницы

<asp:UpdatePanel ID="upPopUps" runat="server" UpdateMode="Conditional"> 
    <ContentTemplate> 
     <asp:Panel ID="panelOverlay" runat="server" class="Overlay" Visible="false"> 
     </asp:Panel> 
     <asp:Panel ID="panelPopUpPanel" runat="server" class="PopUpPanel" Visible="false" 
      BorderStyle="Solid" BorderWidth="5px" Height="250px"> 
      <table style="width: 100%; height: 100%; border-bottom: solid 2; border-top: solid 2; 
       border-left: solid 2; border-right: solid 2;"> 
       <tr> 
        <th style="width: 100%; padding-left: 10px;" colspan="2"> 
         <asp:PlaceHolder ID="PopupHeader" runat="server"></asp:PlaceHolder> 
        </th> 
        <th> 
         <asp:ImageButton id="cmdClosePopUp" runat="server" src="../Navigation/PopupImages/Close.png" alt="Close Popup" 
          OnClick="ClosePopup" align="right" /> 
        </th> 
       </tr> 
       <tr class="border_top"> 
        <td colspan="3"> 
        </td> 
       </tr> 
       <tr style="height: 80%"> 
        <td align="center"> 
         <asp:PlaceHolder ID="PopupMessage" runat="server"></asp:PlaceHolder> 
        </td> 

       </tr> 
       <tr style="height: 10%"> 
        <td colspan="3" style="padding-left: 10px;"> 
         <input type="hidden" id="StartDivID" value="0" runat="server" /> 
         <input type="hidden" id="NewsCount" value="" runat="server" /> 
         <asp:ImageButton runat="server" id="btn_ok" src="../Navigation/PopupImages/Ok_Button.jpg" alt="Close Popup" 
           OnClick="ClosePopup" align="right" /> 
        </td> 
       </tr> 
      </table> 
     </asp:Panel> 
    </ContentTemplate> 
</asp:UpdatePanel> 

Моя проблема заключается в том, что если я нажмите на одну из этих двух кнопок после PageLoad он работает отлично.

Через $(document).ready(function() я обновляю страницу каждые 60 секунд. PopUp появляется, но кнопки больше не срабатывают.

 $(document).ready(function() { 

       setInterval("RefreshGrid()", 60000); 

     }); 


     function RefreshGrid() { 
      var WebGrid1 = ISGetObject("WebGrid1"); 
      WebGrid1.Refresh(); 
     } 

У кого-то есть идея, где может быть проблема? Почему он работает только с первой страницей?

+0

Что именно вы делаете в '$ (document) .ready (function() {})'? –

+0

Я обновил свой пост. – Paks

+0

Вы пытались восстановить события после обновления? '$ ('# btn_ok'). click (...' –

ответ

3

Есть зарезервированная функция под названием pageLoad, которая запускается при каждой обратной передаче. Свяжите свои события внутри.

function pageLoad() { 
    $('#btn_ok, #cmdClosePopUp').click(ClosePopup); //Something like this. 
} 

Похоже, вы теряете связь с обработчиками при обновлении. Это должно исправить это.

+0

Спасибо, сработало! :) – Paks

+0

Замечательно! :) –

+0

Другим решением является использование asp: Linkbutton с изображением или обычной кнопкой asp:. С помощью этих кнопок Codebehind срабатывает каждый раз, не перебирая события. Я понятия не имею, почему ImageButton не работает. – Paks