ListItem クラス
アセンブリ: System.Web (system.web.dll 内)


ListItem コントロールは、ListBox コントロール、RadioButtonList コントロールなど、データ連結リスト コントロール内にある個別のデータ項目を表します。
リスト コントロールの項目を示すために表示されるテキストを指定するには、いくつかの方法があります。通常は、内部 HTML の内容のテキストを配置する方法を使用します。内部 HTML の内容とは、ListItem コントロールの開始タグと終了タグの間にあるテキストのことです。また、Text プロパティを使用して、項目を示すためにリスト コントロールに表示されるテキストを指定することもできます。
Value プロパティを使用すると、リスト コントロールに表示されるテキストだけでなく、リスト コントロールの項目に値を関連付けることができます。たとえば、リスト コントロールの項目を示すために、"Item 1" などのテキストを表示したり、Value プロパティを使用して、"$1.99" など、その項目の値を指定したりできます。
内部 HTML の内容、Text、または Value のプロパティ セットを組み合わせることができます。その結果 ListItem コントロールに対して出力される HTML は、設定されるこれら 3 つのプロパティの組み合わせによって異なります。たとえば、3 つすべてのプロパティを次のように設定します。
内部 HTML の内容は、表示される内部 HTML の内容を表すために使用され、Value プロパティは、Value 属性を表すために使用されます。この結果表示される HTML 出力は次のようになります。
設定されるプロパティの組み合わせと、表示される内部 HTML の内容と Value 属性を表すために使用される、対応するプロパティの一覧を次の表に示します。左側の 3 列には、設定されるプロパティの組み合わせの一覧を示します。右側の 2 列には、対応する属性に対して使用されるプロパティ値の一覧を示します。
![]() |
---|
このコントロールは、ユーザー入力を表示するために使用できます。ユーザー入力には悪意のあるクライアント スクリプトが含まれている可能性があります。アプリケーションに表示する前に、クライアントから送信された実行スクリプト、SQL ステートメントなどのコードの情報はすべて検証してください。入力テキストをコントロールに表示する前に、検証コントロールを使用してユーザー入力を検証できます。ASP.NET には入力要求の検証機能があり、ユーザー入力の中のスクリプトおよび HTML をブロックできます。詳細については、「標準コントロールのセキュリティ保護」、「方法 : HTML エンコーディングを文字列に適用して Web アプリケーションをスクリプトによる攻略から保護する」、および「ASP.NET Web ページにおけるユーザー入力の検証」を参照してください。 |

ListBox コントロール内の ListItem コントロールの使用例を次に示します。
![]() |
---|
次のコード サンプルはシングルファイル コード モデルを使用しており、分離コード ファイルに直接コピーされた場合は正常に動作しない可能性があります。各コード サンプルは、拡張子が .aspx の空のテキスト ファイルにコピーする必要があります。Web フォームのコード モデルの詳細については、「ASP.NET Web ページのコード モデル」を参照してください。 |
<%@ Page Language="VB" AutoEventWireup="True" %> <html> <head> <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> <p> <form 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" /> <p> <asp:Label id=Label1 font-name="Verdana" font-size="10pt" runat="server"/> </form> </body> </html>
<%@ Page Language="C#" AutoEventWireup="True" %> <html> <head> <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> <p> <form 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" /> <p> <asp:Label id=Label1 font-name="Verdana" font-size="10pt" runat="server"/> </form> </body> </html>
<%@ Page Language="JScript" AutoEventWireup="True" %> <html> <head> <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> <p> <form 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" /> <p> <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. --> <br /><span space="preserve">...</span><br /><%@ Page language="VB" AutoEventWireup="true"%> <%@ Import Namespace="System.Data" %> <HTML> <HEAD> <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> </HEAD> <BODY> <form 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. --> <br /><span space="preserve">...</span><br /><%@ Page language="c#" AutoEventWireup="true"%> <%@ Import Namespace="System.Data" %> <HTML> <HEAD> <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> </HEAD> <BODY> <form 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>


System.Web.UI.WebControls.ListItem


Windows 98, Windows 2000 SP4, Windows Server 2003, Windows XP Media Center Edition, Windows XP Professional x64 Edition, Windows XP SP2, Windows XP Starter Edition
開発プラットフォームの中には、.NET Framework によってサポートされていないバージョンがあります。サポートされているバージョンについては、「システム要件」を参照してください。


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 ページにおけるユーザー入力の検証
- ListItem クラスのページへのリンク