連載ASP.NET 2.0が変えるWebアプリ開発の世界第3回 ASP.NET 2.0のログイン管理とウィザード・ページ山田 祥寛2004/11/13 |
|
|
●ウィザード式の画面を一元管理するWizardコントロール
ASP.NETに限らず、Webアプリケーションを構築するうえで必ずといってよいほど問題となるのが、ウィザードのように複数ページでひとまとまりのページを作成するような局面だろう。
いまさら特筆するまでもなく、Webアプリケーションが採用するHTTPはステートレス(状態を持たない)なプロトコルだ。つまり、いくら論理的に関連したページであろうとも、その2つのページでそれぞれに発生したリクエストは何ら関係のない「独立した」処理であると見なされる。ページBはページAで発生したいかなるイベントも認識することはできないのだ。
ASP.NETでは、こうしたHTTPの制約を補うために、ビュー・ステートやセッションといった仕組みを提供することで、疑似的に複数のページをつながりあるものとしてまとめているわけである。しかし、これはあくまで疑似的なものにすぎない。例えば、ウィザード式の流れ手順が必要なページにおいて、もしもエンド・ユーザーが途中ページからアクセスしたとしても、これを防ぐことは容易ではない。.NET TIPS「[ASP.NET]途中ページへの直接アクセスを防ぐには?」で紹介したような仕組みを自前で用意する必要があるのだ。
しかし、ASP.NET 2.0で新たに用意されたWizardコントロールを利用すれば、ウィザードのように論理的にひと連なりの流れを持ったページ群を管理するのも容易にできる。論より証拠、まずはWizardコントロールを使った簡単なページの例を見てみることにしよう。
○Wizardコントロールでウィザード式の画面を設計
まずは、フォーム・デザイナでWizardコントロールを配置してみよう。ほかのコントロール同様、コントロール右上から[共通タスク]メニューを表示させることができるので、ここからフォーマットの選択やウィザード・ステップ(ウィザードの設定手順)の追加/削除を行う。
Wizardコントロールを利用した.aspxファイルの例 |
[共通タスク]から複数のウィザード・ステップを編集することができる。ウィザードの各ステップを編集するには、[共通タスク]から[WizardStepsの追加と削除]を選択すればよい。 |
例えば、ここでは既定で用意された2つのステップに、もう1つステップを加え、合計3つのステップからなるウィザード画面を作成してみよう。ステップの追加/削除、および、編集は「WizardStepコレクション・エディタ」から行うことができる。
WizardStepのプロパティ編集 |
ウィザードの各ステップに関する属性は、この「WizardStepコレクション・エディタ」から行うことができる。 |
ウィザード・ステップ(WizardStep)に対して設定可能なプロパティは以下のとおり。
プロパティ | 概要 |
Title | ステップのタイトル |
AllowReturn | 前のステップに戻ることを許すかどうか |
StepType | ステップの種類(Auto[自動]/Complete/Finish/Start/Step) |
WizardStepの主要なプロパティ |
各ステップのレイアウトは、フォーム・デザイナ上で編集することができる。後述するMultiViewコントロール/Viewコントロールとは異なり、フォーム・デザイナ上には常に1つのステップしか表示することができない。編集したいステップを切り替えたい場合には、Wizardコントロール左部のリンクをクリックするか、[共通タスク]メニューから[ステップ]を選択すればよい。ここでは、それぞれのステップにTextBox1〜3という名前で、1つずつTextBoxコントロールを配置しておくことにしよう。
Wizardコントロール上の各ステップで入力された内容は、1つのWebフォーム上に複数のサーバ・コントロールを直接に配置した場合とまったく同じ要領で取得できる。ここでは、Wizardコントロールの各ステップで入力された内容を[完了]ボタンをクリックしたタイミングでブラウザに出力する、最も単純なコードを記述してみよう。もちろん、本来のアプリケーションでは、このタイミングでデータベースに入力内容を登録するなどの処理が発生するはずだ。
|
|
Wizardコントロールを利用したサンプル・プログラム(.aspxファイル) | |
[完了]ボタンをクリックすると、ウィザード内で入力された内容をブラウザに出力する。 |
以上の.aspxファイルの実行結果は以下のとおり。
Wizardコントロールを利用した.aspxファイルの実行例 |
[完了]ボタンをクリックしたタイミングで、Wizard1_FinishButtonClickプロシージャが実行され、ウィザード内の各ステップで入力された内容をブラウザに出力する。 |
なお、Wizardコントロールには、FinishButtonClickイベントのほかに、ActiveStepChanged、CancelButtonClick、NextButtonClick、PreviousButtonClick、SideBarButtonClickなどのイベントが用意されており、ウィザード内各所のタイミングで任意の処理を実行することも可能だ。
INDEX | ||
ASP.NET 2.0が変えるWebアプリ開発の世界 | ||
第3回 ASP.NET 2.0のログイン管理とウィザード・ページ | ||
1.ユーザー管理を簡略化するメンバシップ・フレームワーク | ||
2.メンバシップ・フレームワークに含まれるセキュリティ・コントロール | ||
3.ウィザード式の画面を一元管理するWizardコントロール | ||
4.MultiView&Viewコントロールによるマルチビュー画面の構築 | ||
「ASP.NET 2.0が変えるWebアプリ開発の世界」 |
- 第2回 簡潔なコーディングのために (2017/7/26)
ラムダ式で記述できるメンバの増加、throw式、out変数、タプルなど、C# 7には以前よりもコードを簡潔に記述できるような機能が導入されている - 第1回 Visual Studio Codeデバッグの基礎知識 (2017/7/21)
Node.jsプログラムをデバッグしながら、Visual Studio Codeに統合されているデバッグ機能の基本の「キ」をマスターしよう - 第1回 明瞭なコーディングのために (2017/7/19)
C# 7で追加された新機能の中から、「数値リテラル構文の改善」と「ローカル関数」を紹介する。これらは分かりやすいコードを記述するのに使える - Presentation Translator (2017/7/18)
Presentation TranslatorはPowerPoint用のアドイン。プレゼンテーション時の字幕の付加や、多言語での質疑応答、スライドの翻訳を行える
|
|