Asp.net

Ajax 更新後在 jQuery 中重新綁定事件(更新面板)

  • November 19, 2008

我的頁面上有幾個輸入和選項元素,每個(幾乎)都附加了一個事件,以便在頁面上的某些文本更改後更新它們。我使用 jQuery,這真的很酷 :)

我還使用 Microsoft的Ajax框架,利用 UpdatePanel。我這樣做的原因是某些元素是基於某些伺服器端邏輯在頁面上創建的。我真的不想解釋為什麼我使用 UpdatePanel - 即使它可以(它可以付出相當大的努力)被重寫為只使用jQuery我仍然想要那個 UpdatePanel。

您可能已經猜到了——一旦我在 UpdatePanel 上進行了回發,jQuery 事件就會停止工作。我實際上已經預料到了這一點,因為“回發”並不是真正的新回發,所以我在 document.ready 中綁定事件的程式碼不會再次被觸發。我還通過在 jQuery 幫助庫中閱讀它來證實我的懷疑。

無論如何,在 UpdatePanel 完成更新DOM之後,我仍然存在重新綁定控制項的問題。我最好需要一個不需要向頁面添加更多 .js 文件(jQuery 外掛)的解決方案,但只要能夠擷取 UpdatePanel 的“更新後”,我就可以呼叫我的方法來重新綁定所有表單元素。 .

由於您使用的是 ASP.NET AJAX,因此您可以訪問pageLoad事件處理程序,每次頁面回發時都會呼叫該事件處理程序,無論是全部還是部分來自 UpdatePanel。您只需將功能放入您的頁面,無需連接。

function pageLoad(sender, args)
{
  if (args.get_isPartialLoad())
  {
      //Specific code for partial postbacks can go in here.
  }
}

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