11

ASP.NET でサーバー コードからポストバックをプログラムでトリガーすることは可能ですか? ページにリダイレクトするために Response.Redirect または Server.Transfer を実行できることはわかっていますが、サーバー コードで同じページへのポストバックをトリガーする方法はありますか (つまり、javascript トリックを使用してフォームを送信する必要はありません)。

4

5 に答える 5

10

Asp.net ポストバックはクライアントから開始されます (通常はフォーム送信)。あなたが何を達成しようとしているのかわかりません。サーバー側のページ ライフサイクルイベントの一部は既に実行されており、以前のイベント ハンドラーを再び発生させようとしています。

于 2008-09-13T16:25:26.853 に答える
2

ポストバックは、FORM の送信によって発生します。クライアントからそれらを開始する必要があります。

于 2008-09-13T16:28:12.107 に答える
1

Ajaxリクエストでそれを行うことができます。サーバーをポーリングするページが必要です。サーバーが情報を要求せずにブラウザーにプッシュする方法はありません。しかし、バックグラウンドで実行され、5 秒ごと (または必要に応じてそれ以上) にサーバーをポーリングする Javascript を使用することが、おそらく最良の解決策です。

追記

このルートに進むと、ポストバックを実行する必要があるかどうかに応じて、サーバーに yes または no だけ、または 0 または 1 だけを返信させることができます。必要に応じて、AJAX の XML 部分を実際に使用する理由はほとんどありません。おそらくいくつかのクエリ文字列変数を使用して、単純な非同期リクエストを実行するだけで、応答として単純な 1 つの単語または数値さえも返されます。そうすれば、XML を作成および解析するための JavaScript が不要な場合に保持できます。

于 2008-09-13T16:14:35.883 に答える
0

新しいバージョンの .NET を使用している場合Page.ClientScript.GetPostBackEventReferenceは、'this.GetPostBackEventReference(...)'廃止されたため、使用する必要があります。また、おそらくPage.ClientScript.RegisterStartupScript(...

于 2017-05-05T07:08:51.930 に答える