首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> 更多程式語言 >> 程式設計綜合問答

ASP.NET AspNetPager 分頁後 JavaScript 失效:UpdatePanel 部分回發導致腳本未重新綁定

     編輯:程式設計綜合問答

現象

首次加載全選復選框腳本正常,點擊 AspNetPager 分頁(__doPostBack)後腳本失效。

原因

AspNetPager 默認在 UpdatePanel 內觸發異步回發,僅更新分頁區域 DOM。原有 $(document).ready 或 window.onload 綁定的事件處理器不會自動重新綁定到新生成的元素上。

解決方案

  1. 使用事件委托(推薦):
    
      // 原代碼
      $("#checkAll").click(function() { ... });
      // 改為
      $(document).on("click", "#checkAll", function() { ... });
      // 或針對動態生成的 checkbox
      $("#gridView").on("click", ".chkItem", function() { ... });
      
  2. PageRequestManager 回發結束重新初始化:
    
      var prm = Sys.WebForms.PageRequestManager.getInstance();
      prm.add_endRequest(function() {
          rebindScripts(); // 重新綁定所有需要的腳本
      });
      function rebindScripts() {
          $("#checkAll").off("click").click(function() { ... });
          // ...
      }
      
  3. 檢查 ID/CSS 衝突:分頁後新生成元素 ID 與舊元素重複,導致選擇器匹配錯誤。
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved