- PR -

[ASP.net]画面遷移に関して

投稿者投稿内容
えっこ
常連さん
会議室デビュー日: 2004/05/11
投稿数: 29
投稿日時: 2006-12-13 16:45
ASP.net(VB)超初心者です。
今.NET Framework2.0で開発しています。

画面A(入力画面)→画面B(確認画面)と遷移する仕組みで
画面Aの内容にエラーがある場合はポストバックし、
画面Aの上部にエラーメッセージと入力フォームを表示させます。

エラーが無い場合には画面Bに遷移するようになっています。
画面Bから画面Aに戻る場合、画面Aで入力した状態で戻るには
どのような方法がありますか。

参考までに画面AはすべてWebコントロールを使用し、
画面Aから画面BへはServer.Transferで遷移しています。
画面Bでは画面Aの内容をRequest.Formで取得しています。

以上、よろしくお願いします。
どっとねっとふぁん
ぬし
会議室デビュー日: 2005/02/23
投稿数: 935
投稿日時: 2006-12-13 18:03
画面BからAに戻る必要があるんですね?

画面をA、Bと分けずに、1つの画面上でViewを切り替えるようにするのが楽なような。。。
えっこ
常連さん
会議室デビュー日: 2004/05/11
投稿数: 29
投稿日時: 2006-12-13 18:08
引用:

どっとねっとふぁんさんの書き込み (2006-12-13 18:03) より:
画面BからAに戻る必要があるんですね?

画面をA、Bと分けずに、1つの画面上でViewを切り替えるようにするのが楽なような。。。




画面Bの戻るボタンを押すことで画面Aに戻るようにしたいと思っています。
1つの画面上でViewを切り替えるようにするというのはどういうことでしょうか。
スケジュールがタイトなため、早くできる方法があるならそちらを利用したいと思います。
どっとねっとふぁん
ぬし
会議室デビュー日: 2005/02/23
投稿数: 935
投稿日時: 2006-12-13 19:05
MultiViewを1つ貼って、そこに2つのViewを追加します。
画面Aの内容を1つめのViewに、画面Bの内容を2つめのViewにプログラミングしていきます。
同一のページ上なので、お互いのコントロールの内容は直接参照することが可能です。
ボタンのクリックによって表示するViewを切り替えるようにすればよいと思います。
えっこ
常連さん
会議室デビュー日: 2004/05/11
投稿数: 29
投稿日時: 2006-12-13 19:10
引用:

どっとねっとふぁんさんの書き込み (2006-12-13 19:05) より:
MultiViewを1つ貼って、そこに2つのViewを追加します。
画面Aの内容を1つめのViewに、画面Bの内容を2つめのViewにプログラミングしていきます。
同一のページ上なので、お互いのコントロールの内容は直接参照することが可能です。
ボタンのクリックによって表示するViewを切り替えるようにすればよいと思います。




ありがとうございます。
自分なりに調べてMultiViewを貼って、どっとねっとふぁんさんの通りに
やってみたのですが、画面が真っ白になって表示されてしまいます。
どこかで設定する必要があるのでしょうか。

たびたびすみませんがよろしくお願いします。
えっこ
常連さん
会議室デビュー日: 2004/05/11
投稿数: 29
投稿日時: 2006-12-13 19:34
引用:

えっこさんの書き込み (2006-12-13 19:10) より:
引用:

どっとねっとふぁんさんの書き込み (2006-12-13 19:05) より:
MultiViewを1つ貼って、そこに2つのViewを追加します。
画面Aの内容を1つめのViewに、画面Bの内容を2つめのViewにプログラミングしていきます。
同一のページ上なので、お互いのコントロールの内容は直接参照することが可能です。
ボタンのクリックによって表示するViewを切り替えるようにすればよいと思います。




ありがとうございます。
自分なりに調べてMultiViewを貼って、どっとねっとふぁんさんの通りに
やってみたのですが、画面が真っ白になって表示されてしまいます。
どこかで設定する必要があるのでしょうか。

たびたびすみませんがよろしくお願いします。



画面が真っ白になる件は自己解決しました。すみません。
Java人
ベテラン
会議室デビュー日: 2005/06/24
投稿数: 94
投稿日時: 2006-12-15 17:54
引用:

えっこさんの書き込み (2006-12-13 16:45) より:
ASP.net(VB)超初心者です。
今.NET Framework2.0で開発しています。

画面A(入力画面)→画面B(確認画面)と遷移する仕組みで
画面Aの内容にエラーがある場合はポストバックし、
画面Aの上部にエラーメッセージと入力フォームを表示させます。

エラーが無い場合には画面Bに遷移するようになっています。
画面Bから画面Aに戻る場合、画面Aで入力した状態で戻るには
どのような方法がありますか。

参考までに画面AはすべてWebコントロールを使用し、
画面Aから画面BへはServer.Transferで遷移しています。
画面Bでは画面Aの内容をRequest.Formで取得しています。

以上、よろしくお願いします。


私も同じ問題に直面しました。
私が実装した方法は
@画面Aのオブジェクトをセッション変数に格納し、画面Bへ遷移。
A画面Bで「戻る」ボタンが押されたら、画面Aに遷移。
B画面Aに遷移されてきたらセッション変数から画面Aのオブジェクトを
 取得して、各項目に値をセット。
です。
ただし、注意しないといけないのは
 Myclass.Page = 画面Aのオブジェクト
と書いても入力状態を復元できません。
私は、コントロールの種類毎を状態を復元する部品を作成しました。


MultiViewコントロールを使用するのもいいですが、
画面Bから画面Cなどの遷移するようなケースが出てくると
苦しいと思います。

参考になれば幸いです。
えっこ
常連さん
会議室デビュー日: 2004/05/11
投稿数: 29
投稿日時: 2006-12-18 13:41
引用:

どっとねっとふぁんさんの書き込み (2006-12-13 19:05) より:
MultiViewを1つ貼って、そこに2つのViewを追加します。
画面Aの内容を1つめのViewに、画面Bの内容を2つめのViewにプログラミングしていきます。
同一のページ上なので、お互いのコントロールの内容は直接参照することが可能です。
ボタンのクリックによって表示するViewを切り替えるようにすればよいと思います。




どっとねっとふぁんさん、ありがとうございました。
MiltiViewでこの問題は無事に解決することができました。

さらに質問なのですが、登録-確認まではMultiViewで画面を作成していますが、
この後DBに登録し、登録完了画面に遷移する仕様になっているのですが、
確認画面で表示された値を登録完了画面に引き継ぐにはどうしたらいいのでしょうか。

今のところ、登録完了画面はMultiViewを使わずに別の画面(新たなaspx)に
しようとしております。また、確認画面の表示方法は登録画面で入力された内容を
すべてラベルに表示させています。

ラベルの値を引き継ぐことはできないのでしょうか。
それとも、登録-確認の時のようにViewを1つ追加した方がよいのでしょうか。

スキルアップ/キャリアアップ(JOB@IT)