次の方法で共有


HtmlSelect クラス

サーバー上の HTML <select> 要素にプログラムによってアクセスできるようにします。

名前空間: System.Web.UI.HtmlControls
アセンブリ: System.Web (system.web.dll 内)

構文

'宣言
<ValidationPropertyAttribute("Value")> _
Public Class HtmlSelect
    Inherits HtmlContainerControl
    Implements IPostBackDataHandler, IParserAccessor
'使用
Dim instance As HtmlSelect
[ValidationPropertyAttribute("Value")] 
public class HtmlSelect : HtmlContainerControl, IPostBackDataHandler, IParserAccessor
[ValidationPropertyAttribute(L"Value")] 
public ref class HtmlSelect : public HtmlContainerControl, IPostBackDataHandler, IParserAccessor
/** @attribute ValidationPropertyAttribute("Value") */ 
public class HtmlSelect extends HtmlContainerControl implements IPostBackDataHandler, IParserAccessor
ValidationPropertyAttribute("Value") 
public class HtmlSelect extends HtmlContainerControl implements IPostBackDataHandler, IParserAccessor
適用できません。

解説

HtmlSelect コントロールを使用して選択ボックスを作成します。HTML <option> 要素を <select> の開始タグおよび終了タグの間に配置して、コントロールの項目一覧を指定します。各項目は System.Web.UI.WebControls.ListItem オブジェクトで表されます。コントロールの各項目に表示されるテキストを指定するには、項目の ListItem.Text プロパティを設定するか、または <option> の開始タグおよび終了タグの間にテキストを配置します。項目の ListItem.Value プロパティを設定することにより、値をテキストとは異なる項目に関連付けることができます。既定で一覧から項目を選択するには、項目の ListItem.Selected プロパティを true に設定します。

Size プロパティと Multiple プロパティを設定すると、HtmlSelect コントロールの外観と動作を制御できます。Size プロパティはコントロールの高さを行単位で指定します。Multiple プロパティは、HtmlSelect コントロールで複数の項目を同時に選択できるかどうかを指定します。

既定では、HtmlSelect コントロールはドロップダウン リスト ボックスとして表示されます。Multiple プロパティを true に設定して、複数の項目を選択できるようにした場合、または Size プロパティを 1 を超える値に設定して、高さを 1 行の高さよりも高く指定した場合、このコントロールはリスト ボックスとして表示されます。

単一選択の HtmlSelect コントロールで選択された項目を確認するには、SelectedIndex プロパティを使用して選択された項目のインデックスを取得します。この値を使用して Items コレクションから項目を取得できます。

複数選択ができる HtmlSelect コントロールで選択された項目を確認するには、Items コレクションを反復処理して各項目の ListItem.Selected プロパティをテストします。

HtmlSelect クラスには、データ バインディングをサポートする 2 つのプロパティが用意されています。System.Collections.IEnumerable インターフェイスを実装するオブジェクト (System.Data.DataViewSystem.Collections.ArrayListSystem.Collections.Hashtable など) または IListSource インターフェイスを実装するオブジェクトにデータをバインドするには、DataSource プロパティを使用して、バインドするデータ ソースを指定します。DataSource プロパティを設定する場合は、データ バインディングを実行するコードを手動で記述する必要があります。データ ソース コントロールで表されるデータ ソースを HtmlSelect コントロールに自動的にバインドするには、DataSourceID プロパティを使用し、その値を、使用するデータ ソース コントロールの ID プロパティに設定します。DataSourceID プロパティを設定すると、HtmlSelect コントロールは、指定したデータ ソース コントロールに自動的にバインドされます。したがって、DataBind メソッドを明示的に呼び出す必要はありません。

コントロール内の項目の ListItem.Text プロパティおよび ListItem.Value プロパティにデータ ソースのどのフィールドをバインドするかは、DataTextField プロパティと DataValueField プロパティを個別に設定しても指定できます。データ ソースに格納されているデータのソースが複数の場合は、DataMember プロパティを使用して、コントロールにバインドする特定のソースを指定します。たとえば、複数のテーブルに System.Data.DataSet オブジェクトがある場合、どのテーブルをコントロールにバインドするかを DataMember プロパティを使用して指定する必要があります。

HtmlSelect のインスタンスの初期プロパティ値の一覧については、HtmlSelect コンストラクタのトピックを参照してください。

トピック 場所
方法 : ASP.NET 構文を使用して HTML サーバー コントロールを Web ページに追加する Visual Studio ASP .NET での Web アプリケーションの作成
方法 : HTML サーバー コントロール プロパティをプログラムで設定する Visual Studio ASP .NET での Web アプリケーションの作成
方法 : ASP.NET 構文を使用して HTML サーバー コントロールを Web ページに追加する Visual Studio ASP .NET での Web アプリケーションの作成
方法 : HTML サーバー コントロール プロパティをプログラムで設定する Visual Studio ASP .NET での Web アプリケーションの作成
方法 : ASP.NET 構文を使用して HTML サーバー コントロールを Web ページに追加する ASP .NET Web アプリケーションの作成
方法 : HTML サーバー コントロール プロパティをプログラムで設定する ASP .NET Web アプリケーションの作成

使用例

コントロールに表示する項目を明示的に宣言することで HtmlSelect コントロールを作成する方法を次のコード例に示します。

<%@ Page Language="VB" AutoEventWireup="True" %>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<script runat="server">

    Sub Button_Click (sender As Object, e As EventArgs)
        
        Dim i As Integer

        Label1.Text = "You selected:"
        For i = 0 to Select1.Items.Count - 1
  
            If Select1.Items(i).Selected Then
               Label1.Text = Label1.Text & "<br /> &nbsp;&nbsp; -" _
                   & Select1.Items(i).Text
            End If         

        Next i

    End Sub

</script>

<html xmlns="http://www.w3.org/1999/xhtml" >

<head>
    <title> HtmlSelect Example </title>
</head>
<body>
<form id="form1" runat="server">

    <h3> HtmlSelect Example </h3>

    Select items from the list: <br /><br />

    <select id="Select1" 
            multiple="true"
            runat="server">

        <option value="1" selected="selected"> Item 1 </option>
        <option value="2"> Item 2 </option>
        <option value="3"> Item 3 </option>
        <option value="4"> Item 4 </option>
        <option value="5"> Item 5 </option>
        <option value="6"> Item 6 </option>

    </select>
    <br /><br />

    <button id="Button1"
            onserverclick="Button_Click"
            runat="server">

        Submit

    </button>
    <br /><br />

    <asp:Label id="Label1"
         runat="server"/>

   </form>
</body>
</html>
<%@ Page Language="C#" AutoEventWireup="True" %>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<script runat="server">

    void Button_Click (Object sender, EventArgs e)
    {
        
        Label1.Text = "You selected:";

        for (int i = 0; i <= Select1.Items.Count - 1; i++)
        {
           if (Select1.Items[i].Selected)
              Label1.Text += "<br /> &nbsp;&nbsp; -" + Select1.Items[i].Text;
        }

    }

</script>

<html xmlns="http://www.w3.org/1999/xhtml" >

<head>
    <title> HtmlSelect Example </title>
</head>
<body>
<form id="form1" runat="server">
    
    <h3> HtmlSelect Example </h3>

    Select items from the list: <br /><br />

    <select id="Select1" 
            multiple="true"
            runat="server">

        <option value="1" selected="selected"> Item 1 </option>
        <option value="2"> Item 2 </option>
        <option value="3"> Item 3 </option>
        <option value="4"> Item 4 </option>
        <option value="5"> Item 5 </option>
        <option value="6"> Item 6 </option>

    </select>
    <br /><br />

    <button id="Button1"
            onserverclick="Button_Click"
            runat="server">

        Submit

    </button>
    <br /><br />

    <asp:Label id="Label1"
         runat="server"/>

   </form>
</body>
</html>

コントロールをデータ ソースにバインドすることにより HtmlSelect コントロールを作成する方法を次のコード例に示します。

<%@ Page Language="VB" AutoEventWireup="True" %>
<%@ Import Namespace="System.Data" %>
<%@ Import Namespace="System.Data.SqlClient" %>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" >

<head>
    <title> HtmlSelect Example </title>
<script runat="server">

      Sub Page_Load (sender As Object, e As EventArgs)
  
        ' Bind the HtmlSelect control to a data source when the page is initially loaded.
        If Not IsPostBack Then
        
           ' Open a connection to the database and run the query.
           ' Note that the connection string may vary depending on your
           ' database server settings.
           Dim ConnectString As String = "server=localhost;database=pubs;integrated security=SSPI"
           Dim QueryString As String = "select * from authors"

           Dim myConnection As SqlConnection = New SqlConnection(ConnectString)
           Dim myCommand As SqlDataAdapter = New SqlDataAdapter(QueryString, myConnection)

           ' Create a dataset to store the query results.
           Dim ds As DataSet = New DataSet()
           myCommand.Fill(ds, "Authors")

           ' Bind the HtmlSelect control to the data source.
           Select1.DataSource = ds
           Select1.DataTextField = "au_fname"
           Select1.DataValueField = "au_fname"
           Select1.DataBind()
        
        End If

      End Sub

      Sub Button_Click (sender As Object, e As EventArgs)
        
         Dim i As Integer

         Label1.Text = "You selected:"

         For i = 0 To Select1.Items.Count - 1
         
            If Select1.Items(i).Selected Then
               Label1.Text = Label1.Text & "<br /> &nbsp;&nbsp; - " & Select1.Items(i).Text
            End If

         Next i

      End Sub

   </script>

</head>

<body>

   <form id="form1" runat="server">

      <h3> HtmlSelect Example </h3>

      Select items from the list. <br />
      Use the Control or Shift key to select multiple items. <br /><br />

      <select id="Select1"
              multiple="true" 
              runat="server"/>

      <br /><br />

      <button id="Button1"
              onserverclick="Button_Click"
              runat="server">

         Submit

      </button>

      <br /><br />

      <asp:Label id="Label1"
           runat="server"/>

   </form>

</body>

</html>
<%@ Page Language="C#" AutoEventWireup="True" %>
<%@ Import Namespace="System.Data" %>
<%@ Import Namespace="System.Data.SqlClient" %>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" >

<head>
    <title> HtmlSelect Example </title>
<script runat="server">

      void Page_Load (Object sender, EventArgs e)
      {

        // Bind the HtmlSelect control to a data source when the page is initially loaded.
        if (!IsPostBack)
        {
      
           // Open a connection to the database and run the query.
           // Note that the connection string may vary depending on your
           // database server settings. 
           string ConnectString = "server=localhost;database=pubs;integrated security=SSPI";
           string QueryString = "select * from authors";

           SqlConnection myConnection = new SqlConnection(ConnectString);
           SqlDataAdapter myCommand = new SqlDataAdapter(QueryString, myConnection);

           // Create a dataset to store the query results.
           DataSet ds = new DataSet();
           myCommand.Fill(ds, "Authors");

           // Bind the HtmlSelect control to the data source.
           Select1.DataSource = ds;
           Select1.DataTextField = "au_fname";
           Select1.DataValueField = "au_fname";
           Select1.DataBind();
        }

      }

      void Button_Click (Object sender, EventArgs e)
      {
       
         // Display the selected items. 
         Label1.Text = "You selected:";

         for (int i=0; i<=Select1.Items.Count - 1; i++)
         {
            if (Select1.Items[i].Selected)
               Label1.Text += "<br /> &nbsp;&nbsp; - " + Select1.Items[i].Text;
         }

      }

   </script>

</head>

<body>

   <form id="form1" runat="server">

      <h3> HtmlSelect Example </h3>

      Select items from the list. <br />
      Use the Control or Shift key to select multiple items. <br /><br />

      <select id="Select1"
              multiple="true" 
              runat="server"/>

      <br /><br />

      <button id="Button1"
              onserverclick="Button_Click"
              runat="server">

         Submit

      </button>

      <br /><br />

      <asp:Label id="Label1"
           runat="server"/>

   </form>

</body>

</html>

DataSourceID プロパティを使用して、HtmlSelect コントロールのデータ ソースを指定する方法を次のコード例に示します。DataSourceID プロパティは、データの取得に使用する SqlDataSource コントロールの ID プロパティに設定されます。ページが読み込まれると、HtmlSelect コントロールは、SqlDataSource コントロールによって指定されたデータ ソースに自動的にバインドされ、ユーザーにデータが表示されます。

<%@ page language="VB" %>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml">
<head id="Head1" runat="server">
    <title>HtmlSelect.DataSourceID</title>
</head>
<body>
<form id="Form1" runat="server">
  <div>

    <h3> HtmlSelect.DataSourceID Example </h3>

    <p>Select an item from the list</p>

    <select id="Select1"
      name="Select1"
      datasourceid="SqlDataSource1"
      datatextfield="ProductName"
      runat="server">
    </select>

    <asp:sqldatasource id="SqlDataSource1"          
      connectionstring="workstation id=localhost;integrated security=SSPI;initial catalog=Northwind"
      selectcommand="SELECT * FROM [Products] Where ProductID <= 5"
      runat="server">
    </asp:sqldatasource>

  </div>
</form>
</body>
</html>
<%@ page language="C#" %>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml">
<head id="Head1" runat="server">
    <title>HtmlSelect.DataSourceID</title>
</head>
<body>
<form id="Form1" runat="server">
  <div>

    <h3> HtmlSelect.DataSourceID Example </h3>

    <p>Select an item from the list</p>

    <select id="Select1"
      name="Select1"
      datasourceid="SqlDataSource1"
      datatextfield="ProductName"
      runat="server">
    </select>

    <asp:sqldatasource id="SqlDataSource1"          
      connectionstring="workstation id=localhost;integrated security=SSPI;initial catalog=Northwind"
      selectcommand="SELECT * FROM [Products] Where ProductID <= 5"
      runat="server">
    </asp:sqldatasource>

  </div>
</form>
</body>
</html>

.NET Framework のセキュリティ

  • AspNetHostingPermission  (ホスト環境での動作に必要なアクセス許可)。要求値 : LinkDemand; アクセス許可値 : Minimal
  • AspNetHostingPermission  (ホスト環境での動作に必要なアクセス許可)。要求値 : InheritanceDemand; アクセス許可値 : Minimal

継承階層

System.Object
   System.Web.UI.Control
     System.Web.UI.HtmlControls.HtmlControl
       System.Web.UI.HtmlControls.HtmlContainerControl
        System.Web.UI.HtmlControls.HtmlSelect

スレッド セーフ

この型の public static (Visual Basicでは共有) メンバはすべて,スレッド セーフです。インスタンス メンバの場合は,スレッド セーフであるとは限りません。

プラットフォーム

Windows 98,Windows Server 2000 SP4,Windows CE,Windows Millennium Edition,Windows Mobile for Pocket PC,Windows Mobile for Smartphone,Windows Server 2003,Windows XP Media Center Edition,Windows XP Professional x64 Edition,Windows XP SP2,Windows XP Starter Edition

Microsoft .NET Framework 3.0 は Windows Vista,Microsoft Windows XP SP2,および Windows Server 2003 SP1 でサポートされています。

バージョン情報

.NET Framework

サポート対象 : 3.0,2.0,1.1,1.0

参照

関連項目

HtmlSelect メンバ
System.Web.UI.HtmlControls 名前空間
Size
Multiple
SelectedIndex
Items
System.Web.UI.WebControls.ListItem
System.Web.UI.WebControls.ListItemCollection
DataSource
DataSourceID
DataMember
System.Data.DataSet
DataTextField
ListItem.Text
DataValueField
ListItem.Value
InnerHtml
InnerText

その他の技術情報

HTML サーバー コントロール