我有一個使用和更新面板的asp.net頁面,並且通過{script src = abc.js}標籤包含了一些javascript。我曾嘗試使用$(document).ready和$(window).load加載我的JavaScript。兩者都在初始加載時觸發,但未能在更新面板回發上觸發。在asp.net更新面板之外的jQuery
有什麼我可以連接客戶端,無論更新面板會發射嗎?我知道我可以注入腳本服務器端,但我理想的情況是希望在所有客戶端執行此操作,並首次連接所需的任何東西。
我有一個使用和更新面板的asp.net頁面,並且通過{script src = abc.js}標籤包含了一些javascript。我曾嘗試使用$(document).ready和$(window).load加載我的JavaScript。兩者都在初始加載時觸發,但未能在更新面板回發上觸發。在asp.net更新面板之外的jQuery
有什麼我可以連接客戶端,無論更新面板會發射嗎?我知道我可以注入腳本服務器端,但我理想的情況是希望在所有客戶端執行此操作,並首次連接所需的任何東西。
如果您想註冊一些代碼以便即使在UpdatePanel
回發時也能運行,您需要註冊您的函數以在發生更新時調用。您可以註冊一個JavaScript函數邊做邊運行以下命令:
// Javascript
function InitializeScripts()
{
var prm = Sys.WebForms.PageRequestManager.getInstance();
prm.add_pageLoaded(YourJavascriptFunctionYouWantToRun);
}
的PageRequestManager
將調用javascript函數在UpdatePanel刷新時。
我過去曾經用過這個功能,當UpdatePanel
因定時器而觸發刷新時觸發了一個觸發器。刷新完成後,腳本將自動運行以根據顯示的數據更新其他控件。
查看此MSDN article瞭解更多信息。
嵌入在你的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()">
在發佈複製和粘貼樣板/逐字回答多個問題時要小心,這些問題往往會被社區標記爲「垃圾」。如果你這樣做,那麼它通常意味着問題是重複的,所以標記它們。 – Kev 2012-05-10 01:21:48
我平添了幾分類型檢查的情況下,該網頁不包含的更新面板。 (typeof(Sys)!=「undefined」){ var manager = Sys.WebForms.PageRequestManager.getInstance(); manager.add_pageLoaded(setup); } else { setup(); } }); 非常棒! – andleer 2010-07-23 22:55:02