4

特定のラジオ ボタンが選択されている場合、ポストバック時にコード ビハインドから新しいウィンドウを開く必要があります。

これを行う方法はありますか?

ありがとうございました。

4

5 に答える 5

4

ページがロードされたら、RegisterStartupScript を使用して window.open スクリプトを実行するように送信できます。

ただし、これにより、ほとんどのポップアップ ブロッカーが邪魔になります。

于 2009-05-22T11:06:39.770 に答える
3

これはうまくいくはずだと思います;-)

ポストバックする前に、ラジオ ボタンに JavaScript を追加して、新しい空白のウィンドウを開きます。これにより、ユーザーのクリックに応じてポップアップが開かれるため、ポップアップ ブロッカーがポップアップをブロックしなくなります。この部分の実行方法については、このリンクを参照してください。

次に、ポストバックが通常どおりページの読み込み時に発生するようにし、起動スクリプトを登録して、既存のウィンドウに新しい URL に移動するように指示します。

 String script = "window.open('popupPage.aspx', 'myPopup')";
 ScriptManager.RegisterStartupScript(Page, Page.GetType(), "someId", script, true);

JavaScriptでは、呼び出すときに注意してください

 window.open(url, 'myPopup')

その名前のウィンドウが既に存在する場合、新しいウィンドウを作成する代わりにそれを返します...したがって、ポップアップがブロックされることはありません!

于 2011-08-31T15:06:09.087 に答える
1

ポストバック時に JavaScriptを実行する必要があります

于 2009-05-22T11:05:48.023 に答える
0

新しいウィンドウは、表示する必要があるコンテンツによっては非常に大雑把になる可能性があります。必要に応じて、ウィンドウ内のポップインの使用を検討してください。そうすれば、ポップアップ ブロッカーを回避できます。詳細をお知らせいただければ、より適切な回答を差し上げることができます。

于 2009-05-23T06:08:52.457 に答える
0

RegisterStartupScript の簡単なサンプル:

RegisterStartupScript("id1", "<script type=\"text/javascript\">alert(\"I'm from JavaScript.\");</script>");
于 2009-05-22T11:38:07.770 に答える