方法 : Web フォーム ページに MultiView Web サーバー コントロールを追加する (Visual Studio)
更新 : 2007 年 11 月
MultiView Web サーバー コントロールおよび View Web サーバー コントロールは、他のコントロールやマークアップのコンテナとして機能します。また、これらのコントロールには、コントロールとマークアップの代替セットを表示する手段が用意されています。MultiView コントロールおよび View コントロールは、主にモバイル デバイスのブラウザでの使用を目的としていますが、ASP.NET ページでもサポートされています。
Web フォーム ページに MultiView Web サーバー コントロールを追加するには
ツールボックスの [標準] タブから、MultiView コントロールをページにドラッグします。
View コントロールに追加する静的テキストを入力します。View コントロールにコントロールを追加するには、追加するコントロールをツールボックスから View コントロールにドラッグして、必要なレイアウトを作成します。
作成する View コントロールごとに、手順 2. と手順 3. を繰り返します。
MultiView コントロールの ActiveViewIndex プロパティに、表示する View コントロールのインデックス値を設定します。 View コントロールを表示しない場合は、このプロパティに -1 を設定します。
ActiveViewIndex プロパティをプログラムで設定するコードを追加して、どの View コントロールを表示するかを設定します。
次の例では、MultiView コントロールの操作方法を示します。ページには、2 つの View コントロールが含まれています。ユーザーが RadioButton コントロールをクリックすると、そのボタンの CheckedChanged イベント ハンドラで、コードが ActiveViewIndex プロパティを設定することによって、適切な View コントロールを表示します。ユーザーが [検索] ボタンをクリックすると、コードは適切な View コントロール内の TextBox コントロールの値を取得します。
セキュリティに関するメモ : この例には、ユーザー入力を受け付けるテキストボックスがあるため、セキュリティ上の脅威になる可能性があります。既定では、ASP.NET Web ページは、ユーザー入力にスクリプトまたは HTML 要素が含まれていないことを検証します。詳細については、「スクリプトによる攻略の概要」を参照してください。
<%@ Page Language="VB" %> <script runat="server"> Protected Enum SearchType As Integer NotSet = -1 Products = 0 Category = 1 End Enum Protected Sub Button1_Click(ByVal sender As Object, _ ByVal e As System.EventArgs) If MultiView1.ActiveViewIndex > -1 Then Dim searchTerm As String = "" Select Case MultiView1.ActiveViewIndex Case SearchType.Products DoSearch(textProductName.Text, _ MultiView1.ActiveViewIndex) Case SearchType.Category DoSearch(textCategory.Text, _ MultiView1.ActiveViewIndex) Case SearchType.NotSet End Select End If End Sub Protected Sub DoSearch(ByVal searchTerm As String, _ ByVal type As SearchType) ' Code here to perform a search. End Sub Protected Sub radioButton_CheckedChanged(ByVal sender As _ Object, ByVal e As System.EventArgs) If radioProduct.Checked Then MultiView1.ActiveViewIndex = SearchType.Products ElseIf radioCategory.Checked Then MultiView1.ActiveViewIndex = SearchType.Category End If End Sub </script> <html> <head runat="server"></head> <body> <form id="form1" runat="server"> <div> Search by product or by category? <br /> <asp:RadioButton ID="radioProduct" runat="server" autopostback="true" GroupName="SearchType" Text="Product" OnCheckedChanged="radioButton_CheckedChanged" /> <asp:RadioButton ID="radioCategory" runat="server" autopostback="true" GroupName="SearchType" Text="Category" OnCheckedChanged="radioButton_CheckedChanged" /> <br /> <br /> <asp:MultiView ID="MultiView1" runat="server"> <asp:View ID="viewProductSearch" runat="server"> Enter product name: <asp:TextBox ID="textProductName" runat="server"></asp:TextBox> </asp:View> <asp:View ID="viewCategorySearch" runat="server"> Enter category: <asp:TextBox ID="textCategory" runat="server"></asp:TextBox> </asp:View> </asp:MultiView> <br /> <br /> <asp:Button ID="btnSearch" OnClick="Button1_Click" runat="server" Text="Search" /> </div> </form> </body> </html>
<%@ Page Language="C#" %> <script runat="server"> public enum SearchType { NotSet = -1, Products = 0, Category = 1 } protected void Button1_Click(Object sender, System.EventArgs e) { if(MultiView1.ActiveViewIndex > -1) { String searchTerm = ""; SearchType mSearchType = (SearchType) MultiView1.ActiveViewIndex; switch(mSearchType) { case SearchType.Products: DoSearch(textProductName.Text, mSearchType); break; case SearchType.Category: DoSearch(textCategory.Text, mSearchType); break; case SearchType.NotSet: break; } } } protected void DoSearch(String searchTerm, SearchType type) { // Code here to perform a search. } protected void radioButton_CheckedChanged(Object sender, System.EventArgs e) { if(radioProduct.Checked) { MultiView1.ActiveViewIndex = (int) SearchType.Products; } else if(radioCategory.Checked) { MultiView1.ActiveViewIndex = (int) SearchType.Category; } } </script> <html> <head id="Head1" runat="server"></head> <body> <form id="form1" runat="server"> <div> Search by product or by category? <br /> <asp:RadioButton ID="radioProduct" runat="server" autopostback="true" GroupName="SearchType" Text="Product" OnCheckedChanged="radioButton_CheckedChanged" /> <asp:RadioButton ID="radioCategory" runat="server" autopostback="true" GroupName="SearchType" Text="Category" OnCheckedChanged="radioButton_CheckedChanged" /> <br /> <br /> <asp:MultiView ID="MultiView1" runat="server"> <asp:View ID="viewProductSearch" runat="server"> Enter product name: <asp:TextBox ID="textProductName" runat="server"> </asp:TextBox> </asp:View> <asp:View ID="viewCategorySearch" runat="server"> Enter category: <asp:TextBox ID="textCategory" runat="server"> </asp:TextBox> </asp:View> </asp:MultiView> <br /> <br /> <asp:Button ID="btnSearch" OnClick="Button1_Click" runat="server" Text="Search" /> </div> </form> </body> </html>
参照
概念
MultiView および View Web サーバー コントロールの概要