updatepanel使用ajax时候代码被jq操作失效---局部刷新片【1】
实 践中我见过的问题:UpdatePanel中的服务器控件用jquery绑定id获取对象;获取的变成是一个服务器控件对象组;而不是一个对象;所以一般 对象后要加[0]。例如<asp:LinkButton ID="btnSave" runat="server" onclick="btnSave_Click"></asp:LinkButton> var btnSave = document.getElementById("btnSave"); 这两种获取的对象才相同,才有btnSave2.click();触发它的单击事件。 注意: 之前理解错误以为只有在updatepanel中才出现获取变成一个对象组,而是jquery获取的都是;只有用jquery有的方法才可以默认直接从对 象组的[0]执行方法;jquery没有的方法是找不到对象的(即undefined);而通过js获取的 (document.getElementById())获取的对象与jQ获取的($("#)[0])是同一对象的;所以想用jquery获取对象而却使 用js的方法可用$("#)[0]加js的方法;例如上面的click()事件; 【click事件为js的;此个例子比较特殊:click 事件为js中LinkButton 元素的click事件不是jquery中的默认的click事件;所以造成一个误区:大家可能以为使用的是jQuery的click事件;而要执行事件是 写在linkbutton的后台onclick事件中,所以应该使用的是js的click事件才能触发;这也说明为什么用jQuery的click事件不 能触发】 现在越来越多的朋友喜欢将jQuery和ASP.NET AJAX 一起来用,最近,许多印度人在forum里抱怨说UpdatePanel和jQuery不兼容,许多jQuery效果在UpdatePanel更新之后就 不work。本篇通过分析两者的框架结构来解决这个兼容性问题。 jquery 在updatepanel中的运用的幾種方式 分类: javascript2010-12-17 14:18148人阅读 评论(0) 举报在這里介紹種方法: 方法一: function load() { Sys.WebForms.PageRequestManager.getInstance().add_endRequest(EndRequestHandler); } function EndRequestHandler() { //這里編寫你要處理的事情 } 注:<body onload="load()"> </script> ===:這種方式我查詢網絡是看到最多人使用的,好多人都轉載了這種方案,郁悶死 方法二: function pageLoad(sender,args) { if(args.get_isPartialLoad()) { //這里重新編寫你要處理的事情 } } 方法三: Sys.Application.add_load(FirejQuery); function FirejQuery() { //這里重新編寫你要處理的事情 } 方法四: <scriptlanguage="javascript"> $(document).ready(function() { //綁定updatepanel里面的控件要執行的事件 }); function pageLoad(sender,args) { if(args.get_isPartialLoad()) { //重新綁定updatepanel里面的控件要執行的事件 } } </script> //方法四與方法二有些相同 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |