Share via


ListItem クラス

データ連結リスト コントロールのデータ項目を表します。このクラスは継承できません。

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

構文

'宣言
<TypeConverterAttribute(GetType(ExpandableObjectConverter))> _
Public NotInheritable Class ListItem
    Implements IStateManager, IParserAccessor, IAttributeAccessor
'使用
Dim instance As ListItem
[TypeConverterAttribute(typeof(ExpandableObjectConverter))] 
public sealed class ListItem : IStateManager, IParserAccessor, IAttributeAccessor
[TypeConverterAttribute(typeof(ExpandableObjectConverter))] 
public ref class ListItem sealed : IStateManager, IParserAccessor, IAttributeAccessor
/** @attribute TypeConverterAttribute(System.ComponentModel.ExpandableObjectConverter) */ 
public final class ListItem implements IStateManager, IParserAccessor, 
    IAttributeAccessor
TypeConverterAttribute(System.ComponentModel.ExpandableObjectConverter) 
public final class ListItem implements IStateManager, IParserAccessor, 
    IAttributeAccessor
適用できません。

解説

ListItem コントロールは、ListBox コントロール、RadioButtonList コントロールなど、データ連結リスト コントロール内にある個別のデータ項目を表します。

リスト コントロールの項目を示すために表示されるテキストを指定するには、いくつかの方法があります。通常は、内部 HTML の内容のテキストを配置する方法を使用します。内部 HTML の内容とは、ListItem コントロールの開始タグと終了タグの間にあるテキストのことです。また、Text プロパティを使用して、項目を示すためにリスト コントロールに表示されるテキストを指定することもできます。

Value プロパティを使用すると、リスト コントロールに表示されるテキストだけでなく、リスト コントロールの項目に値を関連付けることができます。たとえば、リスト コントロールの項目を示すために、"Item 1" などのテキストを表示したり、Value プロパティを使用して、"$1.99" など、その項目の値を指定したりできます。

内部 HTML の内容、Text、または Value のプロパティ セットを組み合わせることができます。その結果 ListItem コントロールに対して出力される HTML は、設定されるこれら 3 つのプロパティの組み合わせによって異なります。たとえば、3 つすべてのプロパティを次のように設定します。

<asp:ListItem Value="Value 1" Text="Item 1">Inner 1</asp:ListItem>

内部 HTML の内容は、表示される内部 HTML の内容を表すために使用され、Value プロパティは、Value 属性を表すために使用されます。この結果表示される HTML 出力は次のようになります。

<option value="Value 1">Inner 1</option>

設定されるプロパティの組み合わせと、表示される内部 HTML の内容と Value 属性を表すために使用される、対応するプロパティの一覧を次の表に示します。左側の 3 列には、設定されるプロパティの組み合わせの一覧を示します。右側の 2 列には、対応する属性に対して使用されるプロパティ値の一覧を示します。

内部 HTML の内容

Text プロパティ

Value プロパティ

表示される内部 HTML の内容

表示される値属性

設定

設定

設定

内部 HTML の内容

Value プロパティ

設定

設定

設定なし

内部 HTML の内容

内部 HTML の内容

設定

設定なし

設定

内部 HTML の内容

Value プロパティ

設定

設定なし

設定なし

内部 HTML の内容

内部 HTML のテキスト

設定なし

設定

設定

Text プロパティ

Value プロパティ

設定なし

設定

設定なし

Text プロパティ

Text プロパティ

設定なし

設定なし

設定

Value プロパティ

Value プロパティ

設定なし

設定なし

設定なし

設定なし

設定なし

メモメモ :

Text プロパティと Value プロパティのそれぞれの既定値は空の文字列であるため、リスト コントロールで空のリスト項目を使用できます。

リスト コントロールが表示されると、Selected プロパティが true に設定された ListItem コントロールはすべて、コントロール内で強調表示されます。

ListItem コントロールには、ListItem コントロールを有効または無効に指定できる Enabled プロパティがあります。無効な ListItem コントロールは淡色表示になり、選択できないことを示します。このプロパティを使用して、RadioButtonList コントロールまたは CheckBoxList コントロールの ListItem コントロールを無効にします。

メモメモ :

このプロパティを使用して、DropDownList コントロールまたは ListBox コントロールの ListItem コントロールを無効にできます。

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

注意に関するメモ注意 :

このコントロールは、ユーザー入力を表示するために使用できます。ユーザー入力には悪意のあるクライアント スクリプトが含まれている可能性があります。アプリケーションに表示する前に、クライアントから送信された実行スクリプト、SQL ステートメントなどのコードの情報はすべて検証してください。入力テキストをコントロールに表示する前に、検証コントロールを使用してユーザー入力を検証できます。ASP.NET には入力要求の検証機能があり、ユーザー入力の中のスクリプトおよび HTML をブロックできます。詳細については、「標準コントロールのセキュリティ保護」、「方法 : HTML エンコーディングを文字列に適用して Web アプリケーションをスクリプトによる攻略から保護する」、および「ASP.NET Web ページにおけるユーザー入力の検証」を参照してください。

トピック 場所
方法 : リスト Web サーバー コントロールに項目を追加する (Visual Studio) Visual Studio での ASP .NET Web アプリケーションの作成
方法 : リスト Web サーバー コントロールに項目を追加する (Visual Studio) Visual Studio ASP .NET での Web アプリケーションの作成
方法 : リスト Web サーバー コントロールの選択項目を確認する Visual Studio ASP .NET での Web アプリケーションの作成
方法 : Web サーバー コントロールのプロパティのコレクションを設定する Visual Studio ASP .NET での Web アプリケーションの作成
方法 : リスト Web サーバー コントロールに項目を追加する (Visual Studio) Visual Studio ASP .NET での Web アプリケーションの作成
方法 : リスト Web サーバー コントロールの選択項目を確認する Visual Studio ASP .NET での Web アプリケーションの作成
方法 : Web サーバー コントロールのプロパティのコレクションを設定する Visual Studio ASP .NET での Web アプリケーションの作成
方法 : リスト Web サーバー コントロールの選択項目を確認する ASP .NET Web アプリケーションの作成
方法 : Web サーバー コントロールのプロパティのコレクションを設定する ASP .NET Web アプリケーションの作成
方法 : リスト Web サーバー コントロールに項目を追加する ASP .NET Web アプリケーションの作成

使用例

ListBox コントロール内の ListItem コントロールの使用例を次に示します。

メモメモ :

次のコード サンプルはシングルファイル コード モデルを使用しており、分離コード ファイルに直接コピーされた場合は正常に動作しない可能性があります。各コード サンプルは、拡張子が .aspx の空のテキスト ファイルにコピーする必要があります。Web フォームのコード モデルの詳細については、「ASP.NET Web ページのコード モデル」を参照してください。

<%@ 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">
<html xmlns="http://www.w3.org/1999/xhtml" >
 <head>
    <title>ListBox Example</title>
<script language="VB" runat="server">
 
         Sub SubmitBtn_Click(Sender As Object, e As EventArgs)
             If ListBox1.SelectedIndex > -1 Then
                 Label1.Text = "You chose: " & ListBox1.SelectedItem.Text
                 Label1.Text &= "<br /> with value: " & ListBox1.SelectedItem.Value
             End If
         End Sub
 
     </script>
 
 </head>
 <body>
 
     <h3>ListBox Example</h3>
     <br />
 
     <form id="form1" runat="server">
 
         <asp:ListBox id="ListBox1" Width="100px" runat="server">
             <asp:ListItem>Item 1</asp:ListItem>
             <asp:ListItem>Item 2</asp:ListItem>
             <asp:ListItem>Item 3</asp:ListItem>
             <asp:ListItem Value="Value 4">Item 4</asp:ListItem>
             <asp:ListItem Text="Item 5" Value="Value 5" Selected="True"/>
             <asp:ListItem>Item 6</asp:ListItem>
         </asp:ListBox>
 
         <asp:button Text="Submit" OnClick="SubmitBtn_Click" runat="server" />
         
         <br />
         
         <asp:Label id="Label1" font-names="Verdana" font-size="10pt" 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">
<html xmlns="http://www.w3.org/1999/xhtml" >
 <head>
    <title>ListBox Example</title>
<script language="C#" runat="server">
 
         void SubmitBtn_Click(Object Sender, EventArgs e) {
             if (ListBox1.SelectedIndex > -1) {
                 Label1.Text="You chose: " + ListBox1.SelectedItem.Text;
                 Label1.Text+="<br /> with value: " + ListBox1.SelectedItem.Value;
             }
         }
 
     </script>
 
 </head>
 <body>
 
     <h3>ListBox Example</h3>
     <br />
 
     <form id="form1" runat="server">
 
         <asp:ListBox id="ListBox1" Width="100px" runat="server">
             <asp:ListItem>Item 1</asp:ListItem>
             <asp:ListItem>Item 2</asp:ListItem>
             <asp:ListItem>Item 3</asp:ListItem>
             <asp:ListItem Value="Value 4">Item 4</asp:ListItem>
             <asp:ListItem Text="Item 5" Value="Value 5" Selected="True"/>
             <asp:ListItem>Item 6</asp:ListItem>
         </asp:ListBox>
 
         <asp:button Text="Submit" OnClick="SubmitBtn_Click" runat="server" />
         
         <br />
         
         <asp:Label id="Label1" font-names="Verdana" font-size="10pt" runat="server"/>
         
     </form>
 
 </body>
 </html>
          
<%@ Page Language="JScript" AutoEventWireup="True" %>
<!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>ListBox Example</title>
<script language="JSCRIPT" runat="server">
 
         function SubmitBtn_Click(Sender : Object, e : EventArgs){
             if(ListBox1.SelectedIndex > -1){
                 Label1.Text = "You chose: " + ListBox1.SelectedItem.Text
                 Label1.Text += "<br /> with value: " + ListBox1.SelectedItem.Value
             }
         }
 
     </script>
 
 </head>
 <body>
 
     <h3>ListBox Example</h3>
     <br />
 
     <form id="form1" runat="server">
 
         <asp:ListBox id="ListBox1" Width="100px" runat="server">
             <asp:ListItem>Item 1</asp:ListItem>
             <asp:ListItem>Item 2</asp:ListItem>
             <asp:ListItem>Item 3</asp:ListItem>
             <asp:ListItem Value="Value 4">Item 4</asp:ListItem>
             <asp:ListItem Text="Item 5" Value="Value 5" Selected="True"/>
             <asp:ListItem>Item 6</asp:ListItem>
         </asp:ListBox>
 
         <asp:button Text="Submit" OnClick="SubmitBtn_Click" runat="server" />
         
         <br />
         
         <asp:Label id="Label1" font-name="Verdana" font-size="10pt" runat="server"/>
         
     </form>
 
 </body>
 </html>
          
<!-- This example demonstrates how to select multiple items from a DataList 
and add the selected items to a DataGrid. The example uses a For Each loop 
to iterate through the ListItem objects in the ListItemCollection of ListBox1. -->

...

<%@ Page language="VB" AutoEventWireup="true"%>
<%@ Import Namespace="System.Data" %>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<script runat="server">
            ' Global Variables.
            Private dv As DataView
            Private dt As New DataTable()

            Private Sub Page_Load(sender As Object, e As System.EventArgs)
                ' Set the number of rows displayed in the ListBox to be
                ' the number of items in the ListBoxCollection.
                ListBox1.Rows = ListBox1.Items.Count

                ' If the DataTable is already stored in the Web form's default
                ' HttpSessionState variable, then don't recreate the DataTable.
                If Session("data") Is Nothing Then
                    ' Add columns to the DataTable.
                    dt.Columns.Add(New DataColumn("Item"))
                    dt.Columns.Add(New DataColumn("Price"))
            ' Store the DataTable in the Session variable so it can be 
                    ' accessed again later.
                    Session("data") = dt
                    
                    ' Use the table to create a DataView, because the DataGrid
                    ' can only bind to a data source that implements IEnumerable.
                    dv = New DataView(dt)
            
                    ' Set the DataView as the data source, and bind it to the DataGrid.
                    DataGrid1.DataSource = dv
                    DataGrid1.DataBind()
                End If
            End Sub

            Private Sub addButton_Click(sender As Object, e As System.EventArgs)
                ' Add the items selected in ListBox1 to DataGrid1.
                Dim item As ListItem
                For Each item In ListBox1.Items
                    If item.Selected Then
                        ' Add the item to the DataGrid.
                        ' First, get the DataTable from the Session variable.
                        dt = CType(Session("data"), DataTable)
            
                        If  Not (dt Is Nothing) Then
                            ' Create a new DataRow in the DataTable.
                            Dim dr As DataRow
                            dr = dt.NewRow()
                            ' Add the item to the new DataRow.
                            dr("Item") = item.Text
                            ' Add the item's value to the DataRow.
                            dr("Price") = item.Value
                            ' Add the DataRow to the DataTable.
                            dt.Rows.Add(dr)

                            ' Rebind the data to DataGrid1.
                            dv = new DataView(dt)
                            DataGrid1.DataSource = dv
                            DataGrid1.DataBind()
                        End If
                    End If
                Next item
            End Sub
        </script>
<html xmlns="http://www.w3.org/1999/xhtml" >
    <head>
    <title> ListItemCollection Example </title>
</head>
    
    <body>
        <form id="form1" runat="server">

            <h3> ListItemCollection Example </h3>

            <table cellpadding="6" border="0">
                <tr>
                    <td valign="top">
                        <asp:ListBox id="ListBox1" runat="server" SelectionMode="Multiple">
                            <asp:ListItem Value=".89">apples</asp:ListItem>
                            <asp:ListItem Value=".49">bananas</asp:ListItem>
                            <asp:ListItem Value="2.99">cherries</asp:ListItem>
                            <asp:ListItem Value="1.49">grapes</asp:ListItem>
                            <asp:ListItem Value="2.00">mangos</asp:ListItem>
                            <asp:ListItem Value="1.09">oranges</asp:ListItem>
                        </asp:ListBox>
                    </td>

                    <td valign="top">
                        <asp:Button id="addButton" runat="server" Text="Add -->"
                            Width="100px" OnClick="addButton_Click"></asp:Button>
                    </td>

                    <td valign="top">
                        <asp:DataGrid Runat="server" ID="DataGrid1" CellPadding="4">
                        </asp:DataGrid>
                    </td>
                </tr>
            </table>        

        </form>
    </body>
</html>
<!-- This example demonstrates how to select multiple items from a DataList and add the 
selected items to a DataGrid. The example uses a foreach loop to iterate through 
the ListItem objects in the ListItemCollection of ListBox1. -->

...

<%@ Page language="c#" AutoEventWireup="true"%>
<%@ Import Namespace="System.Data" %>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<script language="C#" runat="server">
            // Global Variables.
            private DataView dv;
            private DataTable dt = new DataTable();

            private void Page_Load(object sender, System.EventArgs e)
            {
                // Set the number of rows displayed in the ListBox to be
                // the number of items in the ListBoxCollection.
                ListBox1.Rows = ListBox1.Items.Count;

                // If the DataTable is already stored in the Web form's default
                // HttpSessionState variable, then don't recreate the DataTable.
                if (Session["data"] == null)
                {
                    // Add columns to the DataTable.
                    dt.Columns.Add(new DataColumn("Item"));
                    dt.Columns.Add(new DataColumn("Price"));
            // Store the DataTable in the Session variable so it can 
                    // be accessed again later.
                    Session["data"] = dt;
                    
                    // Use the table to create a DataView, because the DataGrid
                    // can only bind to a data source that implements IEnumerable.
                    dv = new DataView(dt);
            
                    // Set the DataView as the data source, and bind it to the DataGrid.
                    DataGrid1.DataSource = dv;
                    DataGrid1.DataBind();
                }
            }

            private void addButton_Click(object sender, System.EventArgs e)
            {
                // Add the items selected in ListBox1 to DataGrid1.
                foreach (ListItem item in ListBox1.Items)
                {
                    if (item.Selected)
                    {
                        // Add the item to the DataGrid.
                        // First, get the DataTable from the Session variable.
                        dt = (DataTable)Session["data"];
            
                        if (dt != null)
                        { 
                            // Create a new DataRow in the DataTable.
                            DataRow dr = dt.NewRow();
                            // Add the item to the new DataRow.
                            dr["Item"] = item.Text;
                            // Add the item's value to the DataRow.
                            dr["Price"] = item.Value;
                            // Add the DataRow to the DataTable.
                            dt.Rows.Add(dr);

                            // Rebind the data to DataGrid1.
                            dv = new DataView(dt);
                            DataGrid1.DataSource = dv;
                            DataGrid1.DataBind();
                        }
                    }
                }
            }
        </script>
<html xmlns="http://www.w3.org/1999/xhtml" >
    <head>
    <title> ListItemCollection Example </title>
</head>
    
    <body>
        <form id="form1" runat="server">

            <h3> ListItemCollection Example </h3>

            <table cellpadding="6" border="0">
                <tr>
                    <td valign="top">
                        <asp:ListBox id="ListBox1" runat="server" SelectionMode="Multiple">
                            <asp:ListItem Value=".89">apples</asp:ListItem>
                            <asp:ListItem Value=".49">bananas</asp:ListItem>
                            <asp:ListItem Value="2.99">cherries</asp:ListItem>
                            <asp:ListItem Value="1.49">grapes</asp:ListItem>
                            <asp:ListItem Value="2.00">mangos</asp:ListItem>
                            <asp:ListItem Value="1.09">oranges</asp:ListItem>
                        </asp:ListBox>
                    </td>

                    <td valign="top">
                        <asp:Button id="addButton" runat="server" Text="Add -->"
                            Width="100px" OnClick="addButton_Click"></asp:Button>
                    </td>

                    <td valign="top">
                        <asp:DataGrid Runat="server" ID="DataGrid1" CellPadding="4">
                        </asp:DataGrid>
                    </td>
                </tr>
            </table>        

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

.NET Framework のセキュリティ

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

継承階層

System.Object
  System.Web.UI.WebControls.ListItem

スレッド セーフ

この型の 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

参照

関連項目

ListItem メンバ
System.Web.UI.WebControls 名前空間
ListControl
RadioButtonList
ListBox
DropDownList
CheckBoxList

その他の技術情報

ListBox Web サーバー コントロール
RadioButton Web サーバー コントロールおよび RadioButtonList Web サーバー コントロールの概要
BulletedList Web サーバー コントロール
DropDownList Web サーバー コントロール
標準コントロールのセキュリティ保護
方法 : HTML エンコーディングを文字列に適用して Web アプリケーションをスクリプトによる攻略から保護する
ASP.NET Web ページにおけるユーザー入力の検証