Day04-2
Column: ASP.NETのトレース機能
-
ASP.NETでは標準の実行トレース機能を提供している。=> トレース機能
-
下記の記述を追記して、トレース機能を有効にする。
<%@ Page Trace=”True” %>
-
上記を記入するとページの末尾にトレース情報が表示される。
セクション | 概要 |
---|---|
要求の詳細 | 要求時間や文字のエンコーディング、HTTPステータスなどの全般的な情報 |
トレースの情報 | 各メソッドの実行順や処理時間など |
コントロールのツリー | ページ上のすべてのサーバコントロールを階層式に出力 |
session情報 | session変数の一覧 |
アプリケーション状態 | アプリケーション変数の一覧 |
クッキーコレクション | クライアントから送信されたクッキーの値とサイズ |
ヘッダコレクション | リクエスト時に送信されたHTTPヘッダに関する情報 |
フォームコレクション | フォームデータとして送信された情報 |
QueryStringコレクション | クエリ情報として送信された情報 |
サーバ変数 | 利用可能なサーバ変数の情報 |
目的
Wizard
コントロールでウィザード形式の画面を作成する。
このレッスンの狙い
Wizard形式の画面構成の大変さ
- Webアプリケーションにおいてウィザード形式のページを作成するのは大変だ
- 情報を維持する必要がある。
- 途中のステップにユーザがアクセスしたときにプログラムが壊れる恐れがある。
ASP.NETのWizardコントロールを使用すれば
- 簡単にウィザード形式のページを作成することができる
Wizard
コントロールの使い方を学びましょう!
WizardコントロールとMultiView/Viewコントロールの使い分け
-
複数の
View
を管理するという意味で、上記二つはよく似たコントロールである -
これらを使い分けるには下記のようなポイントがある
- ビューが順番を持つか
- 順番を持つ: Wizardコントロール
- 順番を持たない: MultiView/Viewコントロール
- 参照系の画面か、入力系の画面か
- 入力系の画面: Wizardコントロール
- 参照系の画面: MultiView/Viewコントロール
- フォームの外観を統一したいか
- 統一したい: Wizardコントロール
- 統一しなくていい: MultiView/Viewコントロール
- ビューが順番を持つか
ウィザードステップの設定
- Wizardコントロールではウィザード配下の各ステップを
WizardStep
オブジェクトで管理する。- Wizardオブジェクトの編集はWizardStepコレクションエディタダイアログから行うことができる。
WizardStepクラスの主なプロパティ
プロパティ | 概要 |
---|---|
AllowReturn | 後続のステップから現在のステップに戻ることを許可するか |
StepType | ステップの種類 |
Title | ステップのタイトル(サイドバーに表示) |
StepTypeについて
StepType
に関する設定値とその概要は下記の通り
設定値 | 概要 |
---|---|
Auto | ステップの順番に応じて自動で判別 |
Start | 開始ステップ(「次へ」ボタンのみ表示) |
Step | 標準のステップ(「次へ」「戻る」ボタンを表示) |
Finish | 入力終了ステップ(「完了」ボタンを表示) |
Complete | 「完了」後に入力内容や成功メッセージを表示するために使用する完了ステップ |
Wizardコントロールで利用可能なイベント
Wizardコントロールで利用可能な主なイベント
イベント | 概要 |
---|---|
ActiveStepChanged | ステップを移動したタイミングで発生 |
CancelButtonClick | [キャンセル]ボタンのクリック時 |
CancelButtonClick | [完了]ボタンのクリック時 |
NextButtonClick | [次へ]ボタンのクリック時 |
PreviousButtonClick | [戻る]ボタンのクリック時 |
SideBarButtonClick | サイドバー領域のボタンのクリック時 |
使用例
Protected Sub wz_FinishButtonClick(ByVal sender As Object, ByVal e As System.Web.UI.WebControls.WizardNavigationEventArgs)
sds.Insert()
End Sub
SqlDataSourceコントロールに動的にパラメータを渡す
- SqlDataSourceコントロールに対してパラメータを引き渡す方法
- データソース構成ウィザードからもととなるデータソースとキー名を設定しておく。(一時限目参照)
- パラメータだけを定義して起き、具体的な値はアプリケーションから引き渡す。
- データソース構成ウィザードからもととなるデータソースとキー名を設定しておく。(一時限目参照)
パラメータから値を引き渡す
SqlDataSource
コントロールの下記のイベントを使用する。Inserting
イベントUpdating
イベントDeleting
イベント
- 上記のイベントは、各処理を実行する[直前]に発生するイベントで、 これらのイベントに対応するイベントハンドラを利用することで、パラメータの動的な引き渡しを行うことができる。
SqlDataSourceコントロールで利用可能なイベントは以下の通り
イベント | 概要 |
---|---|
Deleted | 削除処理の完了後 |
Deleting | 削除処理を行う直前 |
Filtering | フィルタ操作の直前 |
Inserted | 挿入処理の完了後 |
Inserting | 挿入処理の直前 |
Selected | データ取得処理の完了後 |
Selecting | データ取得処理の直前 |
Updated | 更新処理の完了後 |
Updating | 更新処理の直前 |
```vb.net: 使用例
Protected Sub sds_Inserting(ByVal sender As Object, ByVal e As System.Web.UI.WebControls.SqlDataSourceCommandEventArgs) e.Command.Parameters(“@name”).Value = txtName.Text e.Command.Parameters(“@email”).Value = txtEmail.Text …中略… e.Command.Parameters(“@mail”).Value = chkMail.Text End Sub
```
解説
Inserting
イベントハンドラでは、
第二引数として受け取ったSqlDataSourceCommandEventArgs
オブジェクトのCommand
プロパティを参照することで
SqlDataSource
コントロールで定義されたINSERT命令を取得できるので、
さらに、そのParameters
プロパティでパラメータのコレクションにアクセスする。
e.Command.Parameters("パラメータ名").Value
Wizardkコントロールのその他プロパティ
挙動
プロパティ | 概要 |
---|---|
CancdlDestinationPageUrl | [キャンセル]時の移動URL |
FinishDestinationPageUrl | [完了]時の移動先URL |
表示
プロパティ | 概要 |
---|---|
DisplayCancelButton | [キャンセル]ボタンを表示するか |
DisplaySideBar | サイドバーを表示するか |
HeaderText | ヘッダテキスト |
情報
プロパティ | 概要 |
---|---|
ActiveStep | 現在、表示されているステップ(WizardStepオブジェクト) |
ActiveStepIndex | 現在、表示されているステップ(インデックス) |
ボタン
プロパティ | 概要 |
---|---|
CancelButtonImageUrl | [キャンセル]ボタンのイメージ画像 |
CancelButtonText | [キャンセル]ボタンのキャプション |
CancelButtonType | [キャンセル]ボタンの種類 |
FinishCompleteButtonImageUrl | [完了]ボタンのイメージ画像 |
FinishCompleteButtonText | [完了]ボタンのキャプション |
FinishCompleteButtonType | [完了]ボタンの種類 |
FinishPreviousButtonImageUrl | 完了ステップの[戻る]ボタンのイメージ画像 |
FinishPreviousButtonText | 完了ステップの[戻る]ボタンのキャプション |
FinishPreviousButtonType | 完了ステップの[戻る]ボタンの種類 |
StartNextButtonImageUrl | 開始ステップの[次へ]ボタンのイメージ画像 |
StartNextButtonText | 開始ステップの[次へ]ボタンのキャプション |
StartNextButtonType | 開始ステップの[次へ]ボタンの種類 |
StepNextButtonImageUrl | [次へ]ボタンのイメージ画像 |
StepNextButtonText | [次へ]ボタンのキャプション |
StepNextButtonType | [次へ]ボタンの種類 |
StepPreviousButtonImageUrl | [戻る]ボタンのイメージ画像 |
StepPreviousButtonText | [戻る]ボタンのキャプション |
StepPreviousButtonType | [戻る]ボタンの種類 |
スタイル
プロパティ | 概要 |
---|---|
CancelButtonStyle | [キャンセル]ボタンの外観 |
FinishCompleteButtonStyle | [完了]ボタンの外観 |
FinishPreviousButtonStyle | 完了ステップの[戻る]ボタンの外観 |
HeaderStyle | ヘッダ部の外観 |
NavigationButtonStyle | ナビゲーションボタンの外観 |
NavigationStyle | ナビゲーション領域の外観 |
SideBarButtonStyle | サイドバーボタンの外観 |
SideBarStyle | サイドバーの外観 |
StartNextButtonStyle | 開始ステップの[次へ]ボタンの外観 |
StepNextButtonStyle | [次へ]ボタンの外観 |
StepPreviousNextButtonStyle | [戻る]ボタンの外観 |
StepStyle | ステップの外観 |
まとめ
- WizardコントロールとMultiView/Viewコントロールとの使い分けの基準には下記の点がある。
- ビューが順番を持つか?
- 参照/入力いずれの目的か?
- 外観を統一したいか?
- ウィザードステップは[WizardStepコレクションエディタ]で編集が可能である。
- WizardStepクラスの
StepType
プロパティでステップの種類を明示的に定義できる。
- WizardStepクラスの
- Wizardコントロールには、
FinishButtonClick
イベントをはじめとする各種イベントが用意されている。- これらのイベントを利用することで、ウィザード機能に独自の処理を組み込むことが可能。
- SqlDataSourceコントロールでは、
Xxxxxing
/Xxxxxed
イベントが用意されている。- これらのイベントを利用することで、コマンド実行前のパラメータの引き渡し、実行結果の取得、後始末などの処理を定義することができる。
以上