首次加載全選復選框腳本正常,點擊 AspNetPager 分頁(__doPostBack)後腳本失效。
AspNetPager 默認在 UpdatePanel 內觸發異步回發,僅更新分頁區域 DOM。原有 $(document).ready 或 window.onload 綁定的事件處理器不會自動重新綁定到新生成的元素上。
// 原代碼
$("#checkAll").click(function() { ... });
// 改為
$(document).on("click", "#checkAll", function() { ... });
// 或針對動態生成的 checkbox
$("#gridView").on("click", ".chkItem", function() { ... });
var prm = Sys.WebForms.PageRequestManager.getInstance();
prm.add_endRequest(function() {
rebindScripts(); // 重新綁定所有需要的腳本
});
function rebindScripts() {
$("#checkAll").off("click").click(function() { ... });
// ...
}