2010-07-23 90 views
2

我有一個使用和更新面板的asp.net頁面,並且通過{script src = abc.js}標籤包含了一些javascript。我曾嘗試使用$(document).ready和$(window).load加載我的JavaScript。兩者都在初始加載時觸發,但未能在更新面板回發上觸發。在asp.net更新面板之外的jQuery

有什麼我可以連接客戶端,無論更新面板會發射嗎?我知道我可以注入腳本服務器端,但我理想的情況是希望在所有客戶端執行此操作,並首次連接所需的任何東西。

回答

3

如果您想註冊一些代碼以便即使在UpdatePanel回發時也能運行,您需要註冊您的函數以在發生更新時調用。您可以註冊一個JavaScript函數邊做邊運行以下命令:

// Javascript 
function InitializeScripts() 
{ 
    var prm = Sys.WebForms.PageRequestManager.getInstance(); 
    prm.add_pageLoaded(YourJavascriptFunctionYouWantToRun); 
} 

PageRequestManager將調用javascript函數在UpdatePanel刷新時。

我過去曾經用過這個功能,當UpdatePanel因定時器而觸發刷新時觸發了一個觸發器。刷新完成後,腳本將自動運行以根據顯示的數據更新其他控件。

查看此MSDN article瞭解更多信息。

+0

我平添了幾分類型檢查的情況下,該網頁不包含的更新面板。 (typeof(Sys)!=「undefined」){ var manager = Sys.WebForms.PageRequestManager.getInstance(); manager.add_pageLoaded(setup); } else { setup(); } }); 非常棒! – andleer 2010-07-23 22:55:02

0

嵌入在你的JavaScript代碼來這些線路

function foo() 
{ 
    Sys.WebForms.PageRequestManager.getInstance().add_endRequest(endRequestHandler); 
} 
function endRequestHandler(sender, args) 
{ 
    // Do your stuff 
    alert('Update Panel routine is now complete'); 
} 

然後,把這個在你的身體標記

<body onload="foo()"> 
+1

在發佈複製和粘貼樣板/逐字回答多個問題時要小心,這些問題往往會被社區標記爲「垃圾」。如果你這樣做,那麼它通常意味着問題是重複的,所以標記它們。 – Kev 2012-05-10 01:21:48