我试图在点击按钮后将数据加载到gridview
时显示动画图像。它在localhost上运行得很好,但是当我部署它时,它没有。我搜索过帖子,而且我没有做过任何似乎最常见的错误...即。将updateprogress
放在updatepanel
等内。但是,我使用的是masterpage
- 但masterpage
上没有scriptmanager
。当我将生产与localhost进行比较时,我注意到我的视图源页面存在以下差异。任何人都可以帮助我理解为什么生成此工作的JavaScript可能不会出现在生产中?
在 localhost (它工作的地方)我在页面底部看到这个:
[CDATA[
Sys.Application.initialize();
Sys.Application.add_init(function() {
$create(Sys.UI._UpdateProgress, {"associatedUpdatePanelId":null,"displayAfter":500,"dynamicLayout":true}, null, null, $get("ctl00_ContentPlaceHolder1_UpdateProgress1"));
});
在制作(它不起作用的地方),这就是我所看到的:
Sys.Application.initialize();
答案 0 :(得分:0)
将我的项目从VS2008转换为VS2010后,我真的很难过。 UpdateProgress突然停止工作,这在VS2008中很好。花了整整一个下午来搜索答案并试验这个,最后我发现Scott Gu's张贴出了什么问题。
这是一个自动生成的web.config条目'xhtmlConformance mode =“Legacy”'。
禁用此功能后,它又开始工作了。可能不是你的情况,只是因为那些在同样的问题上挣扎的人。
快乐编码
答案 1 :(得分:0)
这可能不是您理想的解决方案,但您可以使用javascript显示()或隐藏()您的动画图像。使用以下javascript函数(并删除UpdateProgress控件)应该可以解决问题。
Sys.WebForms.PageRequestManager.getInstance().add_beginRequest(beginRequest);
Sys.WebForms.PageRequestManager.getInstance().add_endRequest(endRequest);
function beginRequest(sender, args) {
document.getElementById('myImageElement').style.display = 'block';
}
function endRequest(sender, args) {
document.getElementById('myImageElement').style.display = 'none';
}
请记住,每次回发都会发生这种情况,您可能需要使用sender参数来推断出哪个元素称为回发,并且仅在命中正确的updatepanel时才执行显示。这些事件在每个UpdatePanel回发的开头和结尾(分别)触发。祝你好运。