2014-02-18 3 views
0

У меня есть страница контента, я пишу некоторые селектора jquery после asp: updatepanel, для первого раза, когда страница загружена $ (document) .ready (function() работает правильно, но после обратной передачи, селекторы не работает больше, любой способ действительно существует, чтобы решить эту проблему ??Мои селекторы jquery не работают после панели обновления на странице содержимого

<asp:content id="Content1" contentplaceholderid="contentplaceholder1" runat="server">  
    <asp:UpdatePanel ID="UpdatePanel1" runat="server"> 
     <ContentTemplate> 
       <asp:TextBox ID="txtdate" runat="server" CssClass="persianDTP" ></asp:TextBox> 
          <!-- some code --> 

      </ContentTemplate> 
    </asp:UpdatePanel> 

    <script> 
        $(document).ready(function() { 
         $('.PersianDTP').datepicker({ 
          showOn: 'button', 
          buttonImage: 'calendar.png', 
          dateFormat: 'yy/mm/dd', 
          //appendText: ' (yy/mm/dd)', 
          changeMonth: true, 
          changeYear: true, 
          //selectOtherMonths: true, 
          //showOtherMonths: true, 
          showStatus: true, 
          showButtonPanel: true, 
          buttonImageOnly: true, 
          buttonText: 'Choose a Date', 
          onClose: function() { 
           this.focus(); 
          } 
         }); 

         jQuery(function ($) { 
          $(".PersianDTP").mask("9999/99/99"); 
         }); 

        }); 
    </script> 
</asp:content> 
+0

Где '.PersianDTP'? –

+0

Вы имеете в виду, что после .PersianDTP обновляется ajax, datepicker не работает? – wander

+0

.persianDTP - это класс для некоторых элементов управления в панели обновления –

ответ

0

Все плагины JQuery применяются на события загрузки страницы в формате HTML или другими словами документ готов событие, которое запускается, когда вся страница или документ полностью отображается в браузере. Но когда элемент управления находится внутри UpdatePanel, и возникает Partial PostBack, уникальные идентификаторы, назначенные jQuery, теряются и, следовательно, плагин перестает работать, вы можете повторно использовать pply плагин jQuery каждый раз, когда асинхронный запрос UpdatePanel или Partial PostBack завершен: Вам нужно воссоздать коды Jquery при обратных передачах.
пример кода :)

<asp:ScriptManager ID="ScriptManager1" runat="server"> 
    </asp:ScriptManager> 
    <script type="text/javascript"> 
     $(document).ready(function() { 
      $(<%=lstBoxTest.ClientID%>).SumoSelect({ selectAll: true }); 
     }); 

     Sys.WebForms.PageRequestManager.getInstance().add_endRequest(EndRequestHandler); 
     function EndRequestHandler(sender, args) { 
      //Binding Code Again 
      $(<%=lstBoxTest.ClientID%>).SumoSelect({ selectAll: true }); 
     } 
    </script>