2010-09-08 2 views
0

Я использовал LiveQuery для обнаружения, когда элемент добавлен на страницу. Элемент находится внутри .NET AJAX UpdatePanel. Когда UpdatePanel обновляется, прямой запрос не обнаруживает новый элемент..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'); 
    }); 

Предупреждение срабатывает только при первой загрузке страницы. Не при обновлении udpatepanel.

ответ

1

Live Query видит только ваши изменения, когда они создаются с помощью механизмов манипуляции JQuery DOM. В this answer к аналогичному вопросу я боролся с этой проблемой и предложил обходное решение на основе опроса.

0

попробовать оборачивать код JQuery внутри Pageload так:

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

Вам нужно будет добавить EnablePageMethods = "истина" внутри ScriptManager тега:

<asp:ScriptManager ID="ScriptManager1" runat="server" EnablePageMethods="true" /> 
Смежные вопросы