Asp.net

更新面板刷新後如何執行一些 javascript?

  • July 27, 2009

我有一個 pageLoad 函式,它在我無法更改的 .ascx 控制項上設置一些 CSS。在頁面載入時一切都很好,但是當更新面板更新控制項時,我的 CSS 不再應用。頁面更新後如何重新執行我的函式?

$(function() {
       $("textarea").attr("cols", "30");
       $("input.tbMarker").css({ "width": "100px" }).attr("cols","25");
   });

這顯然只在初始頁面載入時執行。更新後如何執行它?

添加 add_pageLoaded 處理程序也可以工作。

Sys.WebForms.PageRequestManager.getInstance().add_pageLoaded(PageLoadedHandler);

注意:處理程序將觸發任何回調,但您可以sender._postBackSettings.panelID在希望呼叫函式時使用過濾器。

更多樣品:

  • <http://blog.jeromeparadis.com/2007/03/01/1501/>
  • <http://zeemalik.wordpress.com/2007/11/27/how-to-call-client-side-javascript-function-after-an-updatepanel-asychronous-ajax-request-is-over/>

最簡單的方法是在您的 javascript 程式碼中使用 MSAjax pageLoad 事件:

&lt;script&gt; 
  ///&lt;summary&gt;
  ///  This will fire on initial page load, 
  ///  and all subsequent partial page updates made 
  ///  by any update panel on the page
  ///&lt;/summary&gt;
  function pageLoad(){ alert('page loaded!') }  
&lt;/script&gt;

我已經用過很多次了,它就像魅力一樣。最重要的是不要將它與 document.ready 函式混淆(僅在頁面文件對像模型 (DOM) 準備好執行 JavaScript 程式碼後執行一次),但 pageLoad 事件將在每次更新面板時執行刷新。

來源:更新面板 AJAX asp.net 後執行腳本

引用自:https://stackoverflow.com/questions/1190549