- - PR -
[ASP.NET2.0]メイン画面から選択画面への画面遷移方法について
投稿者 | 投稿内容 | ||||||||
---|---|---|---|---|---|---|---|---|---|
|
投稿日時: 2006-06-27 16:28
いえ、もうホントに力技です フォームそのものをセッションに格納できるかわからないので、項目の内容のみ セッションに保存してます。 項目のほとんどがテキストなので項目名(ID)には連番付けて、ループで回して FindControlを使用し値をすべて配列に入れ,その配列をセッションへ格納 こんな感じです orz # ちなみにFindControlを使用するのは、後で項目が増えても対応できるかな # と考えてです ← 設計が甘い証拠 [ メッセージ編集済み 編集者: Katze 編集日時 2006-06-27 16:31 ] | ||||||||
|
投稿日時: 2006-06-27 16:36
良いか悪いかは別として、PageをSessionに格納することはできます。
| ||||||||
|
投稿日時: 2006-06-27 17:30
案1 別のWebフォームにせずにクエリーで区別するとか。 WebForm1.aspx?Page=A WebForm1.aspx?Page=B 案2 画面Aと画面Bをユーザーコントロールにするとか。 MultiViewと画面Aと画面BのWebフォームを作る。 画面BだけのWebフォームを作る。 | ||||||||
|
投稿日時: 2006-06-27 17:36
メモリに優しくなさそうですねw 必要なデータだけ力技で抜き出した場合と、 メモリ使用量はどれくらい変わってくるもんなんでしょう?
もし私がそのような局面に直面したらこうするだろうな、という案を。 まず、Sessionに個別にデータを格納すると破棄が大変なので、 Hashtableを一個かまします。 Hashtableに変数名をキーに、値を入れていく。 値は例えばTextBoxならTextプロパティだし、 CheckBoxならCheckedプロパ(ry 要するに復元に必要な最低限の情報です。 最後にHashtableを画面のクラス名をキーにSessionに格納する。 復元は全く逆の手順で行い、最後にSessionにしまっといたHashtableをRemove。 そしてこれらの処理(Sessionへの保存とSessionからの復元)を行うソースコードを、 ソースファイルの「Web フォーム デザイナで生成されたコード」の中の変数宣言部を解析して 自動生成してくれるWindowsアプリケーションを作ります。 #結果的には力技なんですけどね(^^; #過程でちょっとでも楽したいとw | ||||||||
|
投稿日時: 2006-06-27 18:41
セッションは恐いので & 再接続時にも復元したいので、 アプリケーション データ用ディレクトリに、ユーザ毎にディレクトリを作って、 そこにシリアル化した内容を保存しています。 データを、表示するモノから分けておくと(MVC とか Document/View とか)、こういうときに便利。 | ||||||||
|
投稿日時: 2006-06-27 19:46
画面Aのどのような情報を保持しておきたいのでしょうか
どの行を選んだのかとか、検索条件ぐらいだったら SessionやRequestで引き渡してもいいと思うのですが | ||||||||
|
投稿日時: 2006-06-28 00:42
・showDialogで画面Bを開く。大きな画面は作れないな〜。
・画面Aを最小化する。フォーカスが移っても、画面Bが表示されている限り最小化する!...あ〜っ、怒られる、絶対に怒られる! ・画面Aの入力項目、ボタンなどをすべてDisableして画面Bを表示する。画面Bが閉じるときに画面AのDisableを解除する。 | ||||||||
|
投稿日時: 2006-07-02 13:08
に 3 万リラ。 |