- - PR -
[ASP.NET]複数画面への遷移
投稿者 | 投稿内容 |
---|---|
|
投稿日時: 2006-08-09 11:45
一つの画面から、異なるボタンを押して
複数の画面への遷移を考えています。 ボタンAクリック → 画面A表示 ボタンBクリック → 画面B表示 それぞれ専用のフォームをつくりパラメータをセットしています。 パラメータの受渡はPOSTを使っています。 例えば↓↓こんな感じ ------------------------------------------------------- <form action="xxxxx" method="post" target="_parent"> <input type="hidden" id="para1" runat="server"> <input type="hidden" id="para2" runat="server"> </form> <form action="xxxxx" method="post" target="_parent"> <input type="hidden" id="para1" runat="server"> <input type="hidden" id="para3" runat="server"> </form> ------------------------------------------------------- サーバ処理でパラメータに値を格納しています。 送信するパラメータは異なるものの、一部には共通のパラメータがあります。 同じ名前で送りたいのですが、idを同じにするとエラー。 <input type="hidden" name="para1" id="para1dummy" runat="server"> としても実際に表示されるnameはidと同じ「para1dummy」になってしまいます。 ASPのときは<form>をいくつも作って、他画面へ遷移させることをしていたのですが、 ASP.NETではみなさんどのような記述をしているのでしょうか? よろしくお願いします。 |
|
投稿日時: 2006-08-09 11:53
Sessionオブジェクトを使っちゃダメなんですか?
ASP でも使えましたが・・・ |
|
投稿日時: 2006-08-09 11:56
回答ありがとうございます。
過去の経緯もあって、セッションは使っておりません。 また、ASP.NET以外、ASPなどへの受渡もありますので、セッションは使いにくいところです。 POSTパラメータでの受渡での実現方法があればよろしくお願いします。 [ メッセージ編集済み 編集者: NA(-_-)MI 編集日時 2006-08-09 11:58 ] |
|
投稿日時: 2006-08-09 12:06
ASP.NETでもFormタグにrunat=serverの記述をしなければ複数設定できるので
ボタン毎にFormを作って切り分けられたと思います。 ASP.NET 2.0ならPostBackUrlを使う方法でもいけるかな。 |
|
投稿日時: 2006-08-10 08:56
<form>を複数作ることはできるのですが、
<input ・・・>はrunat="server"を付けないと サーバ処理で値を入れることができないので、id属性を指定し、名前を付けています。 そこが重複すると、実際のポストパラメータが変わってしまうところが どうにかならないのでしょうか? ちなみに環境はASP.NET1.1です。 よろしくお願いします。 [ メッセージ編集済み 編集者: NA(-_-)MI 編集日時 2006-08-10 09:07 ] |
|
投稿日時: 2006-08-10 10:29
滅茶苦茶強引ですが、サーバ側のボタンClick時イベントで
<form action="xxxxx" name="Form1" method="post" target="_parent"> <input type="hidden" id="para1" name="para1"> --押されたボタンにより以下を出力する/しないを判断 <input type="hidden" id="para2" name="para2"> --押されたボタンにより以下を出力する/しないを判断 <input type="hidden" id="para3" name="para3"> </form> <script type="text/javascript"> <!-- --押されたボタンにより以下を出力する/しないを判断 document.Form1.para1.value="aaa1"; document.Form1.para2.value="aaa2"; document.Form1.action="Axxxxx"; --押されたボタンにより以下を出力する/しないを判断 document.Form1.para1.value="bbb1"; document.Form1.para3.value="bbb3"; document.Form1.action="Bxxxxx"; document.Form1.submit(); // --> </script> というコードをRegisterStartupScriptで書き出したら どうでしょうか # 動作テストもしていないし、思い付きですので動作しなかっ # たらすいませんm(_ _)m [ メッセージ編集済み 編集者: Katze 編集日時 2006-08-10 10:30 ] |
|
投稿日時: 2006-08-10 10:40
確かに、サーバ側クリック処理で
必要な部分のみ書き出してあげれば、実現できそうですね。 試してみます。ありがとうございます。 やはり、共通のパラメータはセッション変数に格納するのが 一般的なのでしょうね。。 |
|
投稿日時: 2006-08-10 11:17
素朴な疑問なんですが、そもそもrunat="server"を指定していないFormの中に
サーバーコントロールを設置してまともに動きます? サーバーサイドのコードは実行されない気がするのですが・・・。 |