Asp.net

ASP.Net AJAX 多個 pageLoad 功能可能嗎?

  • May 29, 2013

我有一個注入 javascriptpageLoad函式的 ASP.Net 控制項。我也有pageLoad直接在頁面上的功能。我似乎無法讓他們倆都開火。您是否僅限於 javascript 中具有相同名稱的單個函式?

是的……像大多數語言一樣,JavaScript 要求符號在其範圍內是唯一的。在 JavaScript 中,如果您在給定範圍內為函式創建多個定義,那麼最後一個定義“獲勝” - 就好像以前的定義不存在一樣。

為了使您的冗餘pageLoad功能起作用,您需要做的是使用該Sys.Application.add_load()方法。使用它,您可以將任意數量的處理程序附加到頁面載入事件。更重要的是,您可以使用匿名函式在add_load方法中添加。這樣做將保證您不會有重複名稱的處理程序的危險。例子:

StringBuilder sb = new StringBuilder();
 sb.Append("Sys.Application.add_load(");
 sb.Append("function() { alert('page load'); });");

ClientScript.RegisterStartupScript(this.GetType(), "Page_Load", sb.ToString(), true);

您可以在客戶端輕鬆使用Sys.Application.add_load,甚至可以多次添加相同的處理程序。這將導致多次觸發相同的功能:)

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