Microsoft JScript运行时错误:'this._postBackSettings.async'为null或不是对象

时间:2008-09-30 08:47:18

标签: javascript asp.net asp.net-ajax

我在asp页面上有报告,每次更改过滤器并点击查看报告时,都会收到此错误:

Microsoft JScript运行时错误:'this._postBackSettings.async'为null或不是对象

我尝试将EnablePartialRendering =“true”更改为EnablePartialRendering =“false”,但人们无法在网站上登录

6 个答案:

答案 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订购问题?