JavaScript で __dopostback() を使用する
通常、__dopostback()
関数は ASP.NET
に関連付けられています。 ただし、次の例では、対応する .NET
コード スニペットは含めません。 むしろ、動作原理を説明します。
JavaScript の __dopostback()
関数は、EventTarget
と EventArgument
の 2つのパラメーターを取ります。 これらの引数により、post
メソッドが起動される原因となるイベントを識別できます。
後で、2 番目の引数を使用して、有効な投稿の後に参照される必要なメッセージまたはアクションについて説明します。
以下のコード フェンスを調べて、関数がどのように機能するかを大まかに把握してみましょう。 aspx
ファイルの例をよりよく理解するには、この明示的な スレッド を参考にしてください。
JavaScript で __dopostback()
関数を使用する
ここで、インスタンスにはいくつかの入力フィールド hidden
があり、__EVENTTARGET
および __EVENTARGUMENT
id が設定されている可能性がある値を取得します。 これらの入力に関係なく、アクション ボタンが押されるとメイン関数がトリガーされます。
後の button
は、関数 __dopostback( target, argument)
をむき出しにします。ここで、ターゲットはアクション イベントであり、引数は aspx
ファイルに設定されます。 どのような条件や役割を演じるかは、議論に基づいて決定されます。
通常、フォーム アクションが設定されていない場合、フォーム データの投稿を参照し、同じページの新しいインスタンスをリロードします。 action
が設定されている場合、投稿は現在のページに対して実行され、その後、目的の Web ページにルーティングされます。
入力用のドロップダウン ボックスがあればどうでしょうか。 その場合、Web ページの最初のインスタンスは、GET
メソッドでサーバーを処理することを検討します。
次のリロードごとに、options
リストが再び追加され、スタックは次のようになります。 したがって、1つの (最初の) GET
リクエストに条件を設定すると、リストは後で POST
メソッドに拡張されません。
この説明はよくわかります。
ただし、__dopostback()
関数は、後で変更される可能性がある Web コンテンツに関する適切なサーバー ポストを保証するためのものでした。
コードスニペット:
<body>
<form name="form1" method="post" action="" id="form1">
<div>
<input type="hidden" name="__EVENTTARGET" id="__EVENTTARGET" value="" />
<input type="hidden" name="__EVENTARGUMENT" id="__EVENTARGUMENT" value="" />
</div>
<script type="text/javascript">
var theForm = document.forms['form1'];
if (!theForm) {
theForm = document.form1;
}
function __doPostBack(eventTarget, eventArgument) {
if (!theForm.onsubmit || (theForm.onsubmit() != false)) {
theForm.__EVENTTARGET.value = eventTarget;
theForm.__EVENTARGUMENT.value = eventArgument;
theForm.submit();
}
}
</script>
</div>
<button id="LinkButton1" onsubmit="javascript:__doPostBack('LinkButton1','')">Submit</a>
</form>
</body>
</html>
出力: