- - PR -
[ASP.NET]複数画面への遷移
投稿者 | 投稿内容 | ||||||||
---|---|---|---|---|---|---|---|---|---|
|
投稿日時: 2006-08-10 15:19
<form action="xxxx" method="post" target="_parent">
<input type="hidden" name="para1" id="para1" runat="server"> </form> という記述をしていますが、 サーバ側処理でパラメータに値を入れることはできてるみたいです。 | ||||||||
|
投稿日時: 2006-08-10 18:40
サーバーサイドでパラメータに値を入れているということは、ポストバックを行ってますよね?
もしかしてボタンAとボタンBって、↑に書かれてる2つのフォームとは更に別のフォームに配置していますか? そうすると↑に書かれている2つのフォームって実質無意味ではないですか?
というふうにして、サーバー側で遷移先に応じた値をパラメータに入れるのではダメですか?例えばbutton1のクリックイベントハンドラでは、para1とpara2を設定して画面Aに飛ばす、button2のクリックイベントハンドラでは、para1とpara3を設定して画面Bに飛ばすという感じで。 #なんか物凄い勘違いしてるかも・・・そしたらすみません、スルーしてください^^; | ||||||||
|
投稿日時: 2006-08-10 19:00
ASP時代は、飛び先分<FORM>を作っておいて、ボタンクリック時にそれをサブミットする
という手法を良く使いました。 ページロード時にパラメータに値を入れているので、 ポストバックの必要はありませんでした。 ボタンクリック時にポストバックではなく、 そのまま別フォームへ飛ばそうとしていたのが、スタンダードな記述ではないようですね。 教えていただいたソースも参考にさせていただきます。 色々と試してみたいと思います。どうもありがとうございました!! | ||||||||
|
投稿日時: 2006-08-10 19:09
submit(Katzeさんのコードに書いてあるようなこと)をすればポストバックせずに別ページへpostできますけどね。 その場合<asp:Button である必要はないですが。 [追記] ぁ、「スタンダードな記述では」か。はいスタンダードではないですね。 [ メッセージ編集済み 編集者: べる 編集日時 2006-08-11 00:33 ] | ||||||||
|
投稿日時: 2006-08-10 23:16
ASP.NET 単独なら、セッションに格納して Redirect なり、Transfer が常套手段でしょうね。
runat=server を付けるのは、サーバ側で自動的にコントロールを識別するためです。ですから、手動で識別するなら、付ける必要はありません。とりあえず、リファレンス link to msdn を読みましょう。 こんな感じで行けると思う。
ポストバックの必要がないというより、ポストバックの仕組みがない、ですよね。 ASP.NET 1.x で他のページにポストできないのは、ViewState の復元が出来ないからです。ViewState を OFF にしてしまえば、復元するものがないので通ってしまうような気がしますが、そうするとほぼすべてのサーバ コントロールが意味を無くすぞ、と。 仕組みを知っていれば、どうすればいいかと考えられる幅も広がるんですよね。なので、面倒くさがらずに、ベースの勉強をすることを勧めます。 |