次の方法で共有


HtmlSelect.DataSource プロパティ

HtmlSelect コントロールにバインドする情報のソースを取得または設定します。

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

構文

'宣言
Public Overridable Property DataSource As Object
'使用
Dim instance As HtmlSelect
Dim value As Object

value = instance.DataSource

instance.DataSource = value
public virtual Object DataSource { get; set; }
public:
virtual property Object^ DataSource {
    Object^ get ();
    void set (Object^ value);
}
/** @property */
public Object get_DataSource ()

/** @property */
public void set_DataSource (Object value)
public function get DataSource () : Object

public function set DataSource (value : Object)
適用できません。

プロパティ値

このコントロールにデータを提供するために使用する値のコレクションを格納している IEnumerable または IListSource。既定値は null 参照 (Visual Basic では Nothing) です。

例外

例外の種類 条件

ArgumentException

指定したデータ ソースが System.Collections.IEnumerable または System.ComponentModel.IListSource と互換性がなく、null 参照 (Visual Basic では Nothing) でもありません。

HttpException

DataSource プロパティと DataSourceID プロパティの両方に値が指定されているため、データ ソースを解決できません。

解説

DataSource プロパティを使用して、HtmlSelect コントロールにバインドするデータ ソースを指定します。データ ソースは、System.Collections.IEnumerable インターフェイス (System.Data.DataViewSystem.Collections.ArrayListSystem.Collections.Hashtable など) または IListSource インターフェイスを実装するオブジェクトである必要があります。DataSource プロパティを設定する場合は、データ バインディングを実行するコードを手動で記述する必要があります。

複数のテーブルを持つ System.Data.DataSet オブジェクトなどの複数のデータ セットがデータ ソースに格納されている場合は、DataMember プロパティを使用してコントロールにバインドするデータ セットを指定します。

コントロール内の各項目の ListItem.Text プロパティと ListItem.Value プロパティにデータ ソースのどのフィールドをバインドするかは、DataTextField プロパティと DataValueField プロパティを個別に設定することで指定できます。

また、DataSourceID プロパティを使用して、データ ソース コントロールで表されたデータ ソースへのバインディングを自動的に行うことができます。DataSourceID プロパティを設定すると、データ リスト コントロールは、指定したデータ ソース コントロールに自動的にバインドされます。DataBind メソッドを明示的に呼び出すコードを記述する必要はありません。

DataSource プロパティと DataSourceID プロパティの両方に値を指定した場合、ASP.NET はデータ ソースを解決できず、System.Web.HttpException 例外がスローされます。

使用例

DataSource プロパティを使用して、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>

プラットフォーム

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 クラス
HtmlSelect メンバ
System.Web.UI.HtmlControls 名前空間
HtmlSelect.DataMember プロパティ
System.Data.DataSet
DataTextField
ListItem.Text
DataValueField
ListItem.Value
DataSourceID

その他の技術情報

HTML サーバー コントロール