UpdatePanel和jQuery不兼容 局部刷新jquery失效
2013-09-09 00:00
429 查看
在做项目中发现,在使用了UpdatePanel的地方,局部刷新后,jquery失效了。
后来网上一查,才发现,jquery中的ready事件会在DOM完全加载后运行一次,而当我们实用了UpdatePanel,它只局部更新,并未重新加载页面所有Dom,所以jquery中ready事件将不会再次执行。所以,我们可以将ready事件中执行的代码提取出来,然后通过捕获ScriptManager的EndRequest事件,在每次 UpdatePanel局部刷新之后执行一次jQuery初始化代码:
后来网上一查,才发现,jquery中的ready事件会在DOM完全加载后运行一次,而当我们实用了UpdatePanel,它只局部更新,并未重新加载页面所有Dom,所以jquery中ready事件将不会再次执行。所以,我们可以将ready事件中执行的代码提取出来,然后通过捕获ScriptManager的EndRequest事件,在每次 UpdatePanel局部刷新之后执行一次jQuery初始化代码:
//处理ajax和ScriptManager的冲突 function load() { Sys.WebForms.PageRequestManager.getInstance().add_endRequest(EndRequestHandler); } function EndRequestHandler() { $(function () { $("tbody").find("input:checkbox").each(function (key, val) { $(val).click(function () { var cbxId = $(this).attr("id"); var state = $(this).attr("checked"); $.post("Ajax/UpdateStatus.ashx", { "id": cbxId, "isChecked": state, "fid": "SamID" }, isReturnStatus); }); }); $("thead").find("input:checkbox").click( function () { if (confirm("确定要更新这一列数据吗?") == true) { var cbxId = $(this).attr("id"); var name = cbxId.substr(16); var v = "tbody ." + name + " input[type='checkbox']"; if ($(this).attr("checked") == "checked") { $(v).attr("checked", true); } else { $(v).attr("checked", false); } var state = $(this).attr("checked"); $.post("Ajax/UpdateStatus.ashx", { "id": cbxId, "isChecked": state }, isReturnStatus); } else { if ($(this).attr("checked") == "checked") { $(this).attr("checked", false); } else { $(this).attr("checked", true); } } }); }); initCheckedStaus(); }
相关文章推荐
- UpdatePanel和jQuery不兼容 局部刷新jquery失效
- 解决方案•UpdatePanel 局部刷新导致jQuery失效
- c# ScriptManager 刷新区域 刷新后 jquery 失效 解决 UpdatePanel
- Asp.net采用UpdatePanel局部刷新js失效问题
- [转]ASP.NET中使用UpdatePanel实现局部异步刷新方法和攻略
- jQuery在updatePanel中失效的解决办法
- Updatepanel jquery 失效解决方案
- jquery 兼容 updatepanel
- UpdatePanel和jQuery不兼容
- document.ready 与 updatepanel 害死人(Jquery插件失效,Autocomplate事件失效,Jquery事件第一次有效,单击按钮后就时效)
- 取消UpdatePanel中的控件的局部刷新,并在空间的客户段的事件使其返回文件流不是html文件
- 在SharePoint 2013 中使用UpdatePanel控件进行局部刷新
- updatepanel用法之triggers(局部刷新,全部刷新)使用示例
- Timer和UpdatePanel实现局部刷新
- updatepanel使用ajax时候代码被jq操作失效---局部刷新片【1】
- 使用UpdatePanel 局部刷新出现中文乱码的解决方法!!
- Jquery的datepicker 在ASP.NET UpdatePanel 中失效
- ASP.NET中使用UpdatePanel实现局部异步刷新方法和攻略(转)
- ASP.Net 在Update Panel局部刷新后 重新绑定JS方法
- UpdatePanel控件的使用(实现局部刷新,ajax)