3

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

Microsoft JScript 运行时错误:“this._postBackSettings.async”为空或不是对象

我尝试将 EnablePartialRendering="true" 更改为 EnablePartialRendering="false" 但随后人们无法登录该网站

4

6 回答 6

4

我发现了这个问题的另一种解决方案。

我使用 Telerik RadScriptManager 和 RadAjaxManager(它们建立在各自的 ASP.NET 框架对象之上)。当我实现 JQuery UI 动画来隐藏按钮时,我发现了一些问题——我执行了按钮的“OnClientClick”的动画。

为了解决这个问题,我处理了 OnRequestStart 和 OnResponseEnd 客户端事件,并分别从 OnRequestStart 和 OnResponseEnd 执行了适用的隐藏和显示动画。

我知道不是每个人都使用 Telerik,但这个概念可能是关键,并且可能适用于其他 AJAX 框架:当对 ajaxified 元素执行客户端更改(尤其是在 AJAX 请求处理期间发生的动画等更改)时,在框架的RequestStart/ResponseEnd 客户端事件处理程序,而不是 ajaxified 元素的客户端事件处理程序。

于 2011-08-30T11:21:49.247 回答
3

我遇到了同样的问题,直到我最终找到了完全符合我要求的https://siderite.dev/blog/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 然后可用。

于 2011-02-24T13:10:49.740 回答
2

这个问题是通过设置EnablePartialRendering为 false 来解决的ScriptManager

ScriptManager1.EnablePartialRendering  = false;

在使用OnInit页面的情况下rsweb:ReportViewer。如果要为其他页面启用,请在母版页的OnInit.

于 2010-07-27T10:07:12.523 回答
1

将按钮放在面板内(不是更新面板),然后将此行添加到面板 DefaultButton="Button1"

这将避免错误。

于 2008-10-23T12:55:10.720 回答
1

我也遇到了这个问题,尽管在我的情况下没有涉及到报告:它只是一个带有图像按钮的普通 asp.net 页面。问题是在客户端单击时,我使用以下代码取消了下一个 javascript 事件:

event.cancelBubble = true;
if (event.stopPropagation)
    event.stopPropagation();

我删除了代码,问题也消失了。我的猜测是 asp.net ajax 需要对客户端单击进行一些处理,也许您的报告控件正在做一些我正在做的事情。希望它可以帮助您找到您的问题,并为我的英语感到抱歉:) 问候,MMM

于 2009-08-17T18:36:37.120 回答
1

我刚刚遇到这个问题,偶然找到了解决方案。

在我将 ScriptManager 移动到母版页后,问题开始出现 - 只有当我使用没有更新面板的页面时。

通过将 ScriptManager 标记移动到母版页内容区域的前面来解决此问题。

JavaScript 排序问题?

于 2009-10-20T13:49:26.790 回答