在做.NET开发时,现在都常用UPDATEPANEL。这次项目中加入了Jquery的使用,但有些Jquery的效果在和UpdatePanel一起使用后,在UpdatePanel中有控件发生了PostBack事件后,Jquery的事件绑定就会失效。
解决方法:
1、先是在UpdatePanel中控件PostBack回发之后再重新注册一次Jquery的事件绑定。
function reload() {
Sys.WebForms.PageRequestManager.getInstance().add_endRequest(EndRequestHandler);
}
function EndRequestHandler() {
//这里放JQUERY的事件绑定的代码,等于是再复制一段之前的JQUERY代码
}
2、然后在后台的Page_Load()里:
this.RegisterStartupScript("呵呵", "<script type=\"text/javas
或者在页面<body on
示例代码:
页面代码(部分):
<head runat="server">
<META http-equiv=content-type content="text/html; charset=utf-8" />
<title>OrderHere-Order</title>
<link href="../App_Themes/DefaultThemes/css.css" rel="stylesheet" type="text/css">
<script type="text/javas
<script type="text/javas
<style type="text/css">
.x_img, .x_screen {border:1px solid #ccc; padding:10px; margin:5px; font-size:12px;}
.x_img ul, .x_img li { list-style:none; padding:0; margin:0}
.x_img li {float:left; border:1px solid #eee; padding:5px; margin:5px; }
.x_img img {border:none; width:100px; height:75px;display:block;}
.x_preview {position:absolute; border:1px solid #ccc; background:#333;padding:5px;display:none;color:#fff;}
.x_preview p {margin:0; padding:0; font-size:12px; font-family:Verdana, Arial, Helvetica, sans-serif;word-break:break-all; width:180px}
.x_clear {clear:both}
</style>
<script language="JavaS
javas
</script>
</head>
<body>
<form id="form1" runat="server">
<asp:UpdatePanel ID="UpdatePanel1" runat="server" UpdateMode="Conditional">
<ContentTemplate>
</ContentTemplate>
<Triggers>
<asp:AsyncPostBackTrigger ControlID="dltProductCategory" EventName="SelectedIndexChanged" />
</Triggers>
</asp:UpdatePanel>
<script language="javas
function load() {
Sys.WebForms.PageRequestManager.getInstance().add_endRequest(EndRequestHandler);
}
function EndRequestHandler() {
var j = jQuery.noConflict();
this.toolTip = function(){
var positionTooltip = function(event){
var tPosX = event.pageX - 180;
var tPosY = event.pageY +1;
j('div.x_tooltip').css({top:tPosY, left:tPosX});
};
var showTooltip = function(event){
//$('div.tooltip').remove();
thisTxt = $(this).attr('title');
j(this).attr('title'," ");
j('<div class="x_tooltip">'+ thisTxt +'</div>').appendTo('body');
positionTooltip(event);
};
var hideTooltip = function(){
j(this).attr('title', thisTxt);
j('div.x_tooltip').remove();
};
j('a.show').hover(showTooltip , hideTooltip).mousemove(positionTooltip);
};
this.screenshotPreview = function(elink, preBox, URLsource){
var elemlink = elink; //要添加预览的链接
var previewBox = preBox; //预览用的视图框
var URL = URLsource; //预览图片地址来源
var positionScreen = function(event){
var tPosX = event.pageX - 180;
var tPosY = event.pageY+1;
j('.'+previewBox).css({top:tPosY, left:tPosX}).fadeIn("slow");
};
var showScreen = function(event){
if(URL=='rel'){
thisURL = j(this).attr('rel');
}else if(URL=='href'){
thisURL = j(this).attr('href');
}else return false;
thisTitle = j(this).attr('title');
j(this).attr('title','');
var screenTxt;
if(thisTitle != null){
screenTxt = "<P>" +thisTitle+ "</p>";
}else {
screenTxt = "";
}
var screenTxt = (thisTitle != null)?"<p>"+thisTitle+"</p>" : "";
j("<div class='" +previewBox+ "'><img width=180px height=170px src='" +thisURL+ "' alt='showpic' />" +screenTxt+ "</div>").appendTo("body");
positionScreen(event);
};
var hideScreen = function(){
j(this).attr('title',thisTitle);
j('.'+previewBox).remove();
};
j('.'+ elemlink).hover(showScreen,hideScreen).mousemove(positionScreen);
};
j(document).ready(function(){
//toolTip();
screenshotPreview('preview','x_preview','href');
screenshotPreview('screenshot','x_preview','rel');
});
}
</script>
</form>
</body>
后台部分:
protected void Page_Load(object sender, EventArgs e)
{
this.RegisterStartupScript("呵呵", "<script type=\"text/javas
}
可以解决在,update之后,jQuery效果失效的问题
本文介绍了解决ASP.NET UpdatePanel导致的jQuery事件绑定失效问题的方法。通过在UpdatePanel回发后重新绑定jQuery事件,确保了jQuery效果正常运行。文章提供了具体的实现代码示例。

517

被折叠的 条评论
为什么被折叠?



