2013-02-27 2 views
2

Когда страница загружена, функция commentsShowHideEffect запускается в javascript. Когда выполняется запрос ajax, все инструкции в методе commentsShowHideEffect() исчезли. Как восстановить эти инструкции или вызвать метод commentsShowHideEffect() снова после запроса ajax?Javascript после запроса AJAX

<script> 
    $(function() { 
     commentsShowHideEffect(); 
    }); 
</script} 

<asp:UpdatePanel ID="UpdatePanel2" runat="server" UpdateMode="Conditional"> 
    <Triggers> 
     <asp:AsyncPostBackTrigger ControlID="MessageButton" /> 
    </Triggers> 
    <ContentTemplate> 
     <asp:Timer ID="RefreshTimer" runat="server" Interval="500" /> 
      <asp:DataList ID="ChatDataList" runat="server" > 
       <ItemTemplate>  
        <td><asp:Label ID="lblRaterName" runat="server" Text='<%# Eval("Text")%>'></asp:Label></td> 
       </ItemTemplate> 
      </asp:DataList> 
    </ContentTemplate> 
</asp:UpdatePanel> 

ответ

2

Вы можете связать событие Sys.WebForms.PageRequestManager endRequest, которое будет срабатывать после запроса ajax на панели обновления.

Sys.WebForms.PageRequestManager.getInstance().add_endRequest(EndRequestHandler); 
function EndRequestHandler(sender, args) 
{ 
    alert("After ajax call ended"); 
} 
+0

Это то, что я искал. – TheChampp

1

Определить commentsShowHideEffect из сферы JQuery:

<script> 
    function commentsShowHideEffect() { 
     //do something 
    } 

    $(document).ready(function(){ 
     commentsShowHideEffect(); 
    }); 
</script> 

Далее я предпочитаю использовать document.ready синтаксис, потому что это более понятно для программиста, чтобы понять, что это такое.

+0

Но когда AJAX обновляет ContentTemplate, все функции в функции «commentsShowHideEffect» больше не работают. Как заставить их работать после запроса? – TheChampp

+0

Не могли бы вы уточнить в своем вопросе, что вы имеете в виду с инструкциями? – RvdK

1

Вы не упомянули jQuery в своем вопросе, а не в тегах. Но код видит предположить, что вы используете его, так вот ссылка на соответствующую страницу док:

http://api.jquery.com/ajaxComplete/

В вашей ситуации, это должно работать:

$(document).ajaxComplete(function(event,request, settings) { 
    commentsShowHideEffect(); 
}); 

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

Смежные вопросы