ウィザード形式のページを簡単に作れます。
- Wizard Web サーバー コントロールの概要
ナビゲーションのコマンド名
どこに書いてあるのかわからなかったので、とりあえずメモ。
CommandName
- MoveNext
- MovePrev
- MoveFinish
Tableタグで囲まれるのを防ぐ
asp:WizardはデフォルトでTableタグで囲む上、asp:FormViewのようにテーブルを出力しない設定もありません。
対処法としては、テンプレートを使います。
- Wizard.LayoutTemplate プロパティ
<asp:Wizard ID="Wizard1" runat="server" ~>
<LayoutTemplate>
<asp:PlaceHolder ID="navigationPlaceholder" runat="server"></asp:PlaceHolder>
<div runat="server" id="wizardStepPlaceholder"></div>
</LayoutTemplate>
<StepNavigationTemplate>
<asp:Button ID="ButtonStepNext" runat="server" CommandName="MoveNext"/>
</StepNavigationTemplate>
<FinishNavigationTemplate>
<asp:Button ID="ButtonFinish" runat="server" CommandName="MoveFinish" />
</FinishNavigationTemplate>
<WizardSteps>
<asp:WizardStep ID="WizardStep1" runat="server">
<div id="container">
<h1>hoge</h1>
<p>hoge</p>
</div>
</asp:WizardStep>
</WizardSteps>
</asp:Wizard>
こんな感じ。
wizardStepPlaceholderとnavigationPlaceholderは両方書かないとエラーが起きます。
ナビゲーションのStepとFinishは、それぞれStepNavigationTemplateとFinishNavigationTemplateでテンプレートが分かれてるので注意。
id=wizardStepPlaceholderを指定した部分に、asp:WizardStepの中身が展開されます。
通常は、asp:PlaceHolderを使いますが、上の例のようにタグで代用することもできます。
この再、出力されるHTMLはasp:WizardStepの中身の部分のみで、LayoutTemplateで使用されるタグは影響ありません。
ぶっちゃけ、
<LayoutTemplate>
<br runat="server" id="wizardStepPlaceholder" />
<br runat="server" id="navigationPlaceholder" />
</LayoutTemplate>
こんなんでも構わないわけですが、なんか気持ち悪いし見通し悪くなるのでやめておいたほうが無難だと思います。
最終更新:2013年01月30日 15:10