asp ページにレポートがあり、フィルターを変更して [レポートの表示] をクリックするたびに、次のエラーが表示されます。
Microsoft JScript ランタイム エラー: 'this._postBackSettings.async' が null またはオブジェクトではありません
EnablePartialRendering="true" を EnablePartialRendering="false" に変更しようとしましたが、サイトにログインできません
asp ページにレポートがあり、フィルターを変更して [レポートの表示] をクリックするたびに、次のエラーが表示されます。
Microsoft JScript ランタイム エラー: 'this._postBackSettings.async' が null またはオブジェクトではありません
EnablePartialRendering="true" を EnablePartialRendering="false" に変更しようとしましたが、サイトにログインできません
この問題の別の解決策を発見しました。
私は Telerik RadScriptManager と RadAjaxManager (それぞれの ASP.NET フレームワーク オブジェクトに基づいて構築されています) を使用します。ボタンを非表示にするために JQuery UI アニメーションを実装したときに、いくつかの問題を発見しました。これは、ボタンの「OnClientClick」を実行したアニメーションです。
この問題を解決するために、OnRequestStart および OnResponseEnd クライアント イベントを処理し、OnRequestStart および OnResponseEnd から適用可能な非表示および表示アニメーションをそれぞれ実行しました。
誰もが Telerik を使用しているわけではないことはわかっていますが、この概念は鍵となる可能性があり、おそらく他の AJAX フレームワークにも当てはまります。 ajax 化された要素のクライアント側イベント ハンドラーではなく、RequestStart/ResponseEnd クライアント側イベント ハンドラー。
私は同じ問題を抱えていて、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参照例外が表示されなくなります。
この問題はEnablePartialRendering
、 の false に設定することで解決されますScriptManager
。
ScriptManager1.EnablePartialRendering = false;
使用されOnInit
ているページの場合。rsweb:ReportViewer
他のページで有効にする場合は、マスター ページの で true に設定しますOnInit
。
私はちょうど今この問題を抱えていて、偶然に解決策を見つけました。
ScriptManagerをマスターページに移動した後、更新パネルのないページを使用している場合にのみ、問題が発生し始めました。
ScriptManagerタグをマスターページのコンテンツ領域の直前に移動することで解決しました。
JavaScriptの順序の問題?
私もこの問題を抱えていましたが、私の場合はレポートは含まれていませんでした.画像ボタンのある通常のasp.netページでした. 問題は、クライアントのクリック時に、次のコードで次の JavaScript イベントをキャンセルしていたことです。
event.cancelBubble = true;
if (event.stopPropagation)
event.stopPropagation();
コードを削除すると、問題も消えました。私の推測では、asp.net ajax はクライアントのクリック時に何らかの処理を行う必要があり、レポート コントロールは私が行っていたようなことを行っている可能性があります。問題を見つけるのに役立つことを願っています。私の英語で申し訳ありません:) よろしく、MMM
(更新パネルではなく) パネル内にボタンを配置し、この行をパネルに追加します DefaultButton="Button1"
これにより、エラーが回避されます。