ASP:LinkButtonをリンクとして表示するように配線する方法を探していますが、バックグラウンド(コードビハインドで100%、マークアップにダミーの事前入力フォームがない)でフォーム投稿(target = _blank)を実行します。LinkButtonの「クリック」イベントで照会するフォームアクション、メソッド、およびパラメーターを渡します。これを達成するための最良の方法は何ですか?
1 に答える
さて、あなたがやろうとしていると私が思うことをする方法はたくさんあります:)
1つの問題; 標準のポップアップは、ポストバックを介して私が信じるページにマップされるため、イベントハンドラー呼び出しを起動しません。
GETのみの提出に満足している場合:
オプションA:ターゲットが設定されていないリンクボタンを追加し、クリック用のポストバックイベントハンドラーを設定します
URLを設定し、それをページに戻してJS関数に戻します。JS関数はすぐに読み込まれるか、jqueryなどを使用します。
JS関数では、ターゲットを「_blank」に設定してwindow.open()を使用してURLをロードします。
効果:ユーザーがリンクをクリックすると、すべてのコードがサーバー側で表示されるURLが計算され、ページが元の場所に更新され、ポップアップウィンドウが読み込まれて新しいURLが表示されます。
オプションB:target ="_blank"を持つようにリンクを設定します
page_load()で前処理できるquerystring引数を使用して、新しいページまたは同じページを呼び出すようにします。
新しいページまたはコードの制御ブロックで、計算とResponse.Redirect()を新しいターゲットに実行します
効果:ユーザーがリンクをクリックします。ページは更新されず、新しいページにリダイレクトされてすぐに新しいポップアップが表示されます。これは私が思うよりクリーンなソリューションです!
POSTサポートが必要な場合:
必要なすべての入力要素を含むフォームを表す要素またはHTMLの文字列を動的に作成し、ポップアップウィンドウに出力して(オプションbをラフスタートテンプレートとして使用)、オンロードでフォームをすぐに送信して、POSTを実行します。サーバーサイドスクリプトを介して決定したURLは、オプションbと同じ効果をもたらしますが、フォームレベルのPOSTを使用します。