ListItem クラス
定義
重要
一部の情報は、リリース前に大きく変更される可能性があるプレリリースされた製品に関するものです。 Microsoft は、ここに記載されている情報について、明示または黙示を問わず、一切保証しません。
データ連結リスト コントロールのデータ項目を表します。 このクラスは継承できません。
public ref class ListItem sealed : System::Web::UI::IAttributeAccessor, System::Web::UI::IParserAccessor, System::Web::UI::IStateManager
[System.ComponentModel.TypeConverter(typeof(System.ComponentModel.ExpandableObjectConverter))]
public sealed class ListItem : System.Web.UI.IAttributeAccessor, System.Web.UI.IParserAccessor, System.Web.UI.IStateManager
[<System.ComponentModel.TypeConverter(typeof(System.ComponentModel.ExpandableObjectConverter))>]
type ListItem = class
interface IStateManager
interface IParserAccessor
interface IAttributeAccessor
Public NotInheritable Class ListItem
Implements IAttributeAccessor, IParserAccessor, IStateManager
- 継承
-
ListItem
- 属性
- 実装
例
次の例は、コントロール内でのコントロールの ListItem 使用を ListBox 示しています。
注意
次のコード サンプルでは、単一ファイル コード モデルを使用します。分離コード ファイルに直接コピーすると、正しく動作しない場合があります。 各コード サンプルは、.aspx拡張子を持つ空のテキスト ファイルにコピーする必要があります。 Web フォーム コード モデルの詳細については、「ASP.NET Web フォーム ページ コード モデル」を参照してください。
<%@ 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="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>
<!-- 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. -->
<!-- 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="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)
{
// <Snippet4>
// Set the number of rows displayed in the ListBox to be
// the number of items in the ListBoxCollection.
ListBox1.Rows = ListBox1.Items.Count;
// </Snippet4>
// 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)
{
// <Snippet5>
// 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);
// </Snippet5>
// 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>
<%@ 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)
' <Snippet4>
' Set the number of rows displayed in the ListBox to be
' the number of items in the ListBoxCollection.
ListBox1.Rows = ListBox1.Items.Count
' </Snippet4>
' 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)
' <Snippet5>
' 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)
' </Snippet5>
' 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>
注釈
コントロールは ListItem 、 コントロールや コントロールなどの ListBox データ バインド リスト コントロール内の個々のデータ項目を RadioButtonList 表します。
リスト コントロール内の項目に表示されるテキストを指定するには、いくつかの方法があります。 最も一般的な方法は、内部 HTML コンテンツにテキストを配置することです。 内部 HTML コンテンツは、コントロールの開始タグと終了タグの間の ListItem テキストです。 プロパティを Text 使用して、アイテムのリスト コントロールに表示されるテキストを指定することもできます。
Valueプロパティを使用すると、コントロールに表示されるテキストに加えて、リスト コントロール内の項目に値を関連付けることができます。 たとえば、 などの "Item 1"
リスト コントロール内のアイテムのテキストを表示し、 プロパティを Value 使用してそのアイテムの値 (など "$1.99"
) を指定できます。
内部 HTML コンテンツ、、 Text、または Value プロパティセットを任意に組み合わせて使用できます。 コントロールの結果の HTML 出力は、 ListItem 設定されているこれら 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 コンテンツ | Rendered Value 属性 |
---|---|---|---|---|
オン | オン | オン | 内部 HTML コンテンツ | Value プロパティ |
オン | オン | 未設定 | 内部 HTML コンテンツ | 内部 HTML コンテンツ |
オン | 未設定 | オン | 内部 HTML コンテンツ | Value プロパティ |
オン | 未設定 | 未設定 | 内部 HTML コンテンツ | 内部 HTML テキスト |
未設定 | オン | オン | Text プロパティ | Value プロパティ |
未設定 | オン | 未設定 | Text プロパティ | Text プロパティ |
未設定 | 未設定 | オン | Value プロパティ | Value プロパティ |
未設定 | 未設定 | 未設定 | 未設定 | 未設定 |
リスト コントロールが表示されると、そのSelectedプロパティが にtrue
設定されているコントロールListItemがコントロールで強調表示されます。
コントロールにはListItemEnabled、 プロパティが用意されており、コントロールを有効または無効にするかどうかをListItem指定できます。 ListItem無効になっているコントロールは、選択できないことを示すために淡色表示されます。 コントロールまたはコントロールのコントロールを ListItem 無効にするには、 RadioButtonList このプロパティを CheckBoxList 使用します。
注意
このプロパティを使用して、コントロールまたはListBoxコントロールのコントロールをDropDownList無効ListItemにすることはできません。
のインスタンスの初期プロパティ値の ListItem一覧については、 コンストラクターを ListItem 参照してください。
注意事項
このコントロールを使用すると、悪意のあるクライアント スクリプトを含む可能性があるユーザー入力を表示できます。 実行可能スクリプト、SQL ステートメント、またはその他のコードについてクライアントから送信された情報を確認してから、アプリケーションに表示します。 入力コントロールを使用して、コントロールに入力テキストを表示する前にユーザー入力を確認できます。 ASP.NET は、ユーザー入力のスクリプトと HTML をブロックする入力要求検証機能を提供します。 詳細については、「 標準コントロールのセキュリティ保護」、「 方法: 文字列に HTML エンコードを適用して Web アプリケーションのスクリプトの悪用から保護する」、および「 ASP.NET Web ページでのユーザー入力の検証」を参照してください。
コンストラクター
ListItem() |
ListItem クラスの新しいインスタンスを初期化します。 |
ListItem(String) |
指定したテキスト データを使用して、ListItem クラスの新しいインスタンスを初期化します。 |
ListItem(String, String) |
指定したテキスト データと値データを使用して、ListItem クラスの新しいインスタンスを初期化します。 |
ListItem(String, String, Boolean) |
指定したテキスト、値、および有効なデータを使用して、ListItem クラスの新しいインスタンスを初期化します。 |
プロパティ
Attributes |
クラスで直接サポートされない ListItem の属性名と値のペアのコレクションを取得します。 |
Enabled |
リスト項目が有効であるかどうかを示す値を取得または設定します。 |
Selected |
項目が選択されているかどうかを示す値を取得または設定します。 |
Text |
ListItem によって表される項目のリスト コントロールに表示されるテキストを取得または設定します。 |
Value |
ListItem に関連付けられた値を取得または設定します。 |
メソッド
Equals(Object) |
指定したオブジェクトの値とテキストが現在のリスト項目と同じかどうかを判断します。 |
FromString(String) |
指定したテキストから ListItem を作成します。 |
GetHashCode() |
特定の型のハッシュ関数として機能し、ハッシュ アルゴリズムやハッシュ テーブルのようなデータ構造での使用に適しています。 |
GetType() |
現在のインスタンスの Type を取得します。 (継承元 Object) |
MemberwiseClone() |
現在の Object の簡易コピーを作成します。 (継承元 Object) |
ToString() |
現在のオブジェクトを表す文字列を返します。 |
明示的なインターフェイスの実装
IAttributeAccessor.GetAttribute(String) |
指定された属性名を持つリスト項目コントロールの属性値を返します。 |
IAttributeAccessor.SetAttribute(String, String) |
リスト項目コントロールの属性を指定された名前と値に設定します。 |
IParserAccessor.AddParsedSubObject(Object) |
Text プロパティを内部コンテンツとして永続化できるようにします。 |
IStateManager.IsTrackingViewState |
このメンバーの詳細については、「IsTrackingViewState」をご覧ください。 |
IStateManager.LoadViewState(Object) |
このメンバーの詳細については、「LoadViewState(Object)」をご覧ください。 |
IStateManager.SaveViewState() |
このメンバーの詳細については、「SaveViewState()」をご覧ください。 |
IStateManager.TrackViewState() |
このメンバーの詳細については、「TrackViewState()」をご覧ください。 |
適用対象
こちらもご覧ください
- ListControl
- RadioButtonList
- ListBox
- DropDownList
- CheckBoxList
- ListBox Web サーバー コントロールの概要
- RadioButton および RadioButtonList Web サーバー コントロールの概要
- BulletedList Web サーバー コントロールの概要
- DropDownList Web サーバー コントロールの概要
- 標準コントロールのセキュリティ保護
- 方法: 文字列に HTML エンコードを適用して Web アプリケーションのスクリプトの悪用から保護する
- ASP.NET Web ページでのユーザー入力の検証の概要
.NET