3

asp ページにレポートがあり、フィルターを変更して [レポートの表示] をクリックするたびに、次のエラーが表示されます。

Microsoft JScript ランタイム エラー: 'this._postBackSettings.async' が null またはオブジェクトではありません

EnablePartialRendering="true" を EnablePartialRendering="false" に変更しようとしましたが、サイトにログインできません

4

6 に答える 6

4

この問題の別の解決策を発見しました。

私は Telerik RadScriptManager と RadAjaxManager (それぞれの ASP.NET フレームワーク オブジェクトに基づいて構築されています) を使用します。ボタンを非表示にするために JQuery UI アニメーションを実装したときに、いくつかの問題を発見しました。これは、ボタンの「OnClientClick」を実行したアニメーションです。

この問題を解決するために、OnRequestStart および OnResponseEnd クライアント イベントを処理し、OnRequestStart および OnResponseEnd から適用可能な非表示および表示アニメーションをそれぞれ実行しました。

誰もが Telerik を使用しているわけではないことはわかっていますが、この概念は鍵となる可能性があり、おそらく他の AJAX フレームワークにも当てはまります。 ajax 化された要素のクライアント側イベント ハンドラーではなく、RequestStart/ResponseEnd クライアント側イベント ハンドラー。

于 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が使用可能になると、null参照例外が表示されなくなります。

于 2011-02-24T13:10:49.740 に答える
2

この問題はEnablePartialRendering、 の false に設定することで解決されますScriptManager

ScriptManager1.EnablePartialRendering  = false;

使用されOnInitているページの場合。rsweb:ReportViewer他のページで有効にする場合は、マスター ページの で true に設定しますOnInit

于 2010-07-27T10:07:12.523 に答える
1

私はちょうど今この問題を抱えていて、偶然に解決策を見つけました。

ScriptManagerをマスターページに移動した後、更新パネルのないページを使用している場合にのみ、問題が発生し始めました。

ScriptManagerタグをマスターページのコンテンツ領域の直前に移動することで解決しました。

JavaScriptの順序の問題?

于 2009-10-20T13:49:26.790 に答える
1

私もこの問題を抱えていましたが、私の場合はレポートは含まれていませんでした.画像ボタンのある通常のasp.netページでした. 問題は、クライアントのクリック時に、次のコードで次の JavaScript イベントをキャンセルしていたことです。

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

コードを削除すると、問題も消えました。私の推測では、asp.net ajax はクライアントのクリック時に何らかの処理を行う必要があり、レポート コントロールは私が行っていたようなことを行っている可能性があります。問題を見つけるのに役立つことを願っています。私の英語で申し訳ありません:) よろしく、MMM

于 2009-08-17T18:36:37.120 に答える
1

(更新パネルではなく) パネル内にボタンを配置し、この行をパネルに追加します DefaultButton="Button1"

これにより、エラーが回避されます。

于 2008-10-23T12:55:10.720 に答える