我在asp页面上有报告,每次更改过滤器并点击查看报告时,都会收到此错误:
Microsoft JScript运行时错误:'this._postBackSettings.async'为null或不是对象
我尝试将EnablePartialRendering =“true”更改为EnablePartialRendering =“false”,但人们无法在网站上登录
答案 0 :(得分:4)
我发现了另一个解决这个问题的方法。
我使用Telerik RadScriptManager和RadAjaxManager(它们构建在相应的ASP.NET框架对象之上)。当我实现JQuery UI动画来隐藏按钮时,我发现了一些问题 - 我执行按钮的动画“OnClientClick”。
为了解决这个问题,我处理了OnRequestStart和OnResponseEnd客户端事件,并分别执行了适用的隐藏和显示来自OnRequestStart和OnResponseEnd的动画。
我知道不是每个人都使用Telerik,但这个概念可能很关键,可能适用于其他AJAX框架:当对ajaxified元素执行客户端更改时(尤其是在AJAX请求处理期间发生的动画更改),进行这些更改在您的框架的RequestStart / ResponseEnd客户端事件处理程序中,而不是在ajaxified元素的客户端事件处理程序中。
答案 1 :(得分:2)
通过将EnablePartialRendering
设置为ScriptManager
的错误来解决此问题。
ScriptManager1.EnablePartialRendering = false;
在使用OnInit
的页面的rsweb:ReportViewer
事件中。
如果要为其他页面启用,请在母版页OnInit
上将其设置为true。
答案 2 :(得分:2)
我遇到了同样的问题,直到最后我http://siderite.blogspot.com/2009/02/thispostbacksettingsasync-is-null-or.html完全符合我的要求,才真正找到任何令人满意的解决方案。
为了避免将来可能存在死链接的问题,请输入以下代码:
var script = @"
if (Sys &&
Sys.WebForms && Sys.WebForms.PageRequestManager &&
Sys.WebForms.PageRequestManager.getInstance)
{
var prm = Sys.WebForms.PageRequestManager.getInstance();
if (prm &&
!prm._postBackSettings)
{
prm._postBackSettings = prm._createPostBackSettings(false, null, null);
}";
ScriptManager.RegisterOnSubmitStatement(
Page,
Page.GetType(),
"FixPopupFormSubmit",
script);
如果提交没有设置_postBackSettings,则会创建它们,导致空引用异常消失,因为_postBackSettings.async随后可用。
希望这有帮助,
-G。
答案 3 :(得分:1)
将按钮放在面板内(不是更新面板),然后将此行添加到面板中 DefaultButton = “Button1的”
这样可以避免错误。
答案 4 :(得分:1)
我也有这个问题,虽然在我的情况下没有涉及报告:它只是一个带有图像按钮的普通asp.net页面。事情就是在客户端点击我用这段代码取消了下一个javascript事件:
event.cancelBubble = true;
if (event.stopPropagation)
event.stopPropagation();
我删除了代码,问题也消失了。我的猜测是asp.net ajax需要对客户端点击进行一些处理,也许你的报表控件正在做我喜欢的事情。希望它可以帮助你找到你的问题,抱歉我的英语:) 问候, MMM
答案 5 :(得分:1)
我刚才遇到了这个问题并偶然找到了解决方案。
将ScriptManager移动到母版页后,问题就开始显现了 - 只有在我使用没有更新面板的页面时才会出现。
通过将ScriptManager标记移动到母版页的内容区域前面来解决它。
JavaScript订购问题?