2010-09-08 4 views
0

J'ai utilisé LiveQuery pour détecter quand un élément est ajouté à la page. L'élément se trouve dans un .NET AJAX UpdatePanel. Lorsque le UpdatePanel est actualisé, la requête en direct ne détecte pas le nouvel élément..NET UpdatePanel + LiveQuery

 <asp:UpdatePanel runat="server"> 
     <Triggers> 
      <asp:AsyncPostBackTrigger ControlID="refresh" /> 
     </Triggers> 
     <ContentTemplate> 
      <a id="but1" href="#">Button 1</a> 
     </ContentTemplate> 
    </asp:UpdatePanel> 


$('#but1').livequery(function(event) { 
     alert('Button added'); 
    }); 

L'alerte se déclenche uniquement lorsque la page est chargée pour la première fois. Pas quand le udpatepanel est rafraîchi.

Répondre

1

Live Query ne voit vos modifications que lorsqu'elles sont effectuées via les mécanismes de manipulation DOM de jQuery. Dans this answer à une question similaire, j'ai lutté avec ce problème et suggéré une solution de contournement basée sur l'interrogation.

0

essayer enroulant le code jquery à l'intérieur pageLoad comme ceci:

function pageLoad() 
{ 
    $(document).ready(function() { 
     $('[id$=but1]').livequery(function(event) { 
      alert('Button added'); 
     }); 
    }); 
} 

Vous devez ajouter le EnablePageMethods = "true" dans votre balise ScriptManager:

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