ListItemCollection クラス
アセンブリ: System.Web (system.web.dll 内)
構文Public NotInheritable Class ListItemCollection Implements IList, ICollection, IEnumerable, IStateManager
解説ListItem オブジェクトのコレクションを表す ListItemCollection クラス。さらに、ListItem オブジェクトは、ListBox など、リスト コントロールに表示される項目を表します。プログラムによってリスト コントロールから ListItem オブジェクトを取得するには、次のメソッドのいずれかを使用します。
-
CopyTo メソッドを使用して、コレクションの内容を System.Array オブジェクトにコピーします。その後、このオブジェクトを使用して、コレクションから項目を取得できます。
-
GetEnumerator メソッドを使用して System.Collections.IEnumerator 実装オブジェクトを作成します。その後、このオブジェクトを使用して、コレクションから項目を取得できます。
-
foreach (C#) または For Each (Visual Basic) を使用すると、コレクションを反復処理できます。
Count プロパティは、コレクションの項目の合計数を指定します。通常は、コレクションの上限を確認するために使用されます。Add メソッドおよび Remove メソッドを使用して、コレクションへの項目の追加および削除ができます。
使用例ListItemCollection オブジェクトを作成する方法、項目をコレクションに追加する方法、および項目をコレクションから削除する方法を、次のコード例に示します。この例では、listBoxData という名前の ListItemCollection が ListBox1 という名前の ListBox コントロールのデータ ソースとして使用されています。また、ddBoxData という名前の ListItemCollection が DropDownList1 という名前の DropDownList コントロールのデータ ソースとして使用されています。
<%@ Page language="VB" AutoEventWireup="true" %> <%@ Import Namespace="System.Data" %> <HTML> <HEAD> <SCRIPT runat="server"> Private Sub Page_Load(sender As Object, e As System.EventArgs) Handles MyBase.Load ' If this isn't the first time the page is loaded in this session, ' then don't recreate the DataTables. If Not IsPostBack Then ' Create a new ListItemCollection. Dim listBoxData As New ListItemCollection() ' Add items to the collection. listBoxData.Add(New ListItem("apples")) listBoxData.Add(New ListItem("bananas")) listBoxData.Add(New ListItem("cherries")) listBoxData.Add("grapes") listBoxData.Add("mangos") listBoxData.Add("oranges") ' Set the ListItemCollection as the data source for ListBox1. ListBox1.DataSource = listBoxData ListBox1.DataBind() ' Create a new ListItemCollection. Dim ddBoxData As New ListItemCollection() ' For now, just bind the data to the DropDownList. DropDownList1.DataSource = ddBoxData DropDownList1.DataBind() End If End Sub 'Page_Load Private Sub moveButton1_Click(sender As Object, e As System.EventArgs) 'Set the SelectedIndex to -1 so no items are selected. ' The new item will be set as the selected item when it is added. DropDownList1.SelectedIndex = - 1 ' Add the selected item to DropDownList1. DropDownList1.Items.Add(ListBox1.SelectedItem) ' Delete the selected item from ListBox1. ListBox1.Items.Remove(ListBox1.SelectedItem) End Sub 'moveButton1_Click Private Sub moveButton2_Click(sender As Object, e As System.EventArgs) 'Set the SelectedIndex to -1 so no items are selected. ' The new item will be set as the selected item when it is added. ListBox1.SelectedIndex = - 1 ' Add the selected item to ListBox1. ListBox1.Items.Add(DropDownList1.SelectedItem) 'Delete the selected item from DropDownList1. DropDownList1.Items.Remove(DropDownList1.SelectedItem) End Sub 'moveButton2_Click </SCRIPT> </HEAD> <BODY> <form runat="server"> <table cellpadding="6" border="0"> <tr> <td rowspan="2" valign="top"> <asp:ListBox id="ListBox1" runat="server" SelectionMode="Single" Width="100px"> </asp:ListBox> </td> <td> <asp:Button id="moveButton1" runat="server" Text="Move -->" Width="100px" OnClick="moveButton1_Click"></asp:Button> </td> <td rowspan="2" valign="top"> <asp:DropDownList Runat="server" ID="DropDownList1" Width="100px"> </asp:DropDownList> </td> </tr> <tr> <td> <asp:Button ID="moveButton2" Runat="server" Text="<-- Move" Width="100px" onClick="moveButton2_Click"></asp:Button> </td> </tr> </table> </form> </BODY> </HTML>
<%@ Page language="C#" AutoEventWireup="true" %> <%@ Import Namespace="System.Data" %> <HTML> <HEAD> <SCRIPT runat="server"> private void Page_Load(object sender, System.EventArgs e) { // If this isn't the first time the page is loaded in this session, // then don't recreate the DataTables. if (!IsPostBack) { // Create a new ListItemCollection. ListItemCollection listBoxData = new ListItemCollection(); // Add items to the collection. listBoxData.Add(new ListItem("apples")); listBoxData.Add(new ListItem("bananas")); listBoxData.Add(new ListItem("cherries")); listBoxData.Add("grapes"); listBoxData.Add("mangos"); listBoxData.Add("oranges"); // Set the ListItemCollection as the data source for ListBox1. ListBox1.DataSource = listBoxData; ListBox1.DataBind(); // Create a new ListItemCollection. ListItemCollection ddBoxData = new ListItemCollection(); // For now, just bind the data to the DropDownList. DropDownList1.DataSource = ddBoxData; DropDownList1.DataBind(); } } private void moveButton1_Click(object sender, System.EventArgs e) { //Set the SelectedIndex to -1 so no items are selected. // The new item will be set as the selected item when it is added. DropDownList1.SelectedIndex = -1; // Add the selected item to DropDownList1. DropDownList1.Items.Add(ListBox1.SelectedItem); // Delete the selected item from ListBox1. ListBox1.Items.Remove(ListBox1.SelectedItem); } private void moveButton2_Click(object sender, System.EventArgs e) { //Set the SelectedIndex to -1 so no items are selected. // The new item will be set as the selected item when it is added. ListBox1.SelectedIndex = -1; // Add the selected item to ListBox1. ListBox1.Items.Add(DropDownList1.SelectedItem); //Delete the selected item from DropDownList1. DropDownList1.Items.Remove(DropDownList1.SelectedItem); } </SCRIPT> </HEAD> <BODY> <form runat="server"> <table cellpadding="6" border="0"> <tr> <td rowspan="2" valign="top"> <asp:ListBox id="ListBox1" runat="server" SelectionMode="Single" Width="100px"> </asp:ListBox> </td> <td> <asp:Button id="moveButton1" runat="server" Text="Move -->" Width="100px" OnClick="moveButton1_Click"></asp:Button> </td> <td rowspan="2" valign="top"> <asp:DropDownList Runat="server" ID="DropDownList1" Width="100px"> </asp:DropDownList> </td> </tr> <tr> <td> <asp:Button ID="moveButton2" Runat="server" Text="<-- Move" Width="100px" onClick="moveButton2_Click"></asp:Button> </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 For Each 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 foreach loop to iterate through the ListItem objects in the ListItemCollection of ListBox1. -->
<%@ 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>
<%@ 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.ListItemCollection
スレッド セーフ
プラットフォーム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 によってサポートされていないバージョンがあります。サポートされているバージョンについては、「システム要件」を参照してください。
バージョン情報
参照ListItemCollection コンストラクタ
アセンブリ: System.Web (system.web.dll 内)
構文
解説
使用例ListItemCollection オブジェクトを作成する方法、項目をコレクションに追加する方法、および項目をコレクションから削除する方法を、次のコード例に示します。このコードの完全な動作例を参照するには、WebControl クラスのトピックを参照してください。
' Create a new ListItemCollection. Dim listBoxData As New ListItemCollection() ' Add items to the collection. listBoxData.Add(New ListItem("apples")) listBoxData.Add(New ListItem("bananas")) listBoxData.Add(New ListItem("cherries")) listBoxData.Add("grapes") listBoxData.Add("mangos") listBoxData.Add("oranges") ' Set the ListItemCollection as the data source for ListBox1. ListBox1.DataSource = listBoxData ListBox1.DataBind()
// Create a new ListItemCollection. ListItemCollection listBoxData = new ListItemCollection(); // Add items to the collection. listBoxData.Add(new ListItem("apples")); listBoxData.Add(new ListItem("bananas")); listBoxData.Add(new ListItem("cherries")); listBoxData.Add("grapes"); listBoxData.Add("mangos"); listBoxData.Add("oranges"); // Set the ListItemCollection as the data source for ListBox1. ListBox1.DataSource = listBoxData; ListBox1.DataBind();
プラットフォーム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 によってサポートされていないバージョンがあります。サポートされているバージョンについては、「システム要件」を参照してください。
バージョン情報
参照ListItemCollection プロパティ
パブリック プロパティ| 名前 | 説明 | |
|---|---|---|
| Capacity | ListItemCollection に格納できる項目の最大数を取得または設定します。 |
| Count | コレクション内の ListItem オブジェクト数を取得します。 |
| IsReadOnly | ListItemCollection が読み取り専用かどうかを示す値を取得します。 |
| IsSynchronized | ListItemCollection へのアクセスが同期されている (スレッド セーフである) かどうかを示す値を取得します。 |
| Item | コレクション内の指定したインデックス位置にある ListItem を取得します。 |
| SyncRoot | ListItemCollection へのアクセスを同期するために使用できるオブジェクトを取得します。 |
明示的インターフェイスの実装| 名前 | 説明 | |
|---|---|---|
| System.Collections.IList.IsFixedSize | このメンバの説明については、IsFixedSize のトピックを参照してください。 |
| System.Collections.IList.Item | このメンバの説明については、Item のトピックを参照してください。 |
| System.Web.UI.IStateManager.IsTrackingViewState | このメンバの説明については、IsTrackingViewState のトピックを参照してください。 |
参照ListItemCollection メソッド
パブリック メソッド
プロテクト メソッド| 名前 | 説明 | |
|---|---|---|
| Finalize | Object がガベージ コレクションにより収集される前に、その Object がリソースを解放し、その他のクリーンアップ操作を実行できるようにします。 ( Object から継承されます。) |
| MemberwiseClone | 現在の Object の簡易コピーを作成します。 ( Object から継承されます。) |
明示的インターフェイスの実装| 名前 | 説明 | |
|---|---|---|
| System.Collections.IList.Add | このメンバの説明については、Add のトピックを参照してください。 |
| System.Collections.IList.Contains | このメンバの説明については、Contains のトピックを参照してください。 |
| System.Collections.IList.IndexOf | このメンバの説明については、IndexOf のトピックを参照してください。 |
| System.Collections.IList.Insert | このメンバの説明については、Insert のトピックを参照してください。 |
| System.Collections.IList.Remove | このメンバの説明については、Remove のトピックを参照してください。 |
| System.Web.UI.IStateManager.LoadViewState | 以前に保存した状態を読み込みます。 |
| System.Web.UI.IStateManager.SaveViewState | 状態の変化を示すオブジェクトを返します。 |
| System.Web.UI.IStateManager.TrackViewState | 変化の状態の追跡を開始します。 |
参照ListItemCollection メンバ
リスト コントロールの ListItem オブジェクトのコレクション。このクラスは継承できません。
ListItemCollection データ型で公開されるメンバを以下の表に示します。
パブリック コンストラクタ
パブリック プロパティ| 名前 | 説明 | |
|---|---|---|
| Capacity | ListItemCollection に格納できる項目の最大数を取得または設定します。 |
| Count | コレクション内の ListItem オブジェクト数を取得します。 |
| IsReadOnly | ListItemCollection が読み取り専用かどうかを示す値を取得します。 |
| IsSynchronized | ListItemCollection へのアクセスが同期されている (スレッド セーフである) かどうかを示す値を取得します。 |
| Item | コレクション内の指定したインデックス位置にある ListItem を取得します。 |
| SyncRoot | ListItemCollection へのアクセスを同期するために使用できるオブジェクトを取得します。 |
パブリック メソッド
プロテクト メソッド| 名前 | 説明 | |
|---|---|---|
| Finalize | Object がガベージ コレクションにより収集される前に、その Object がリソースを解放し、その他のクリーンアップ操作を実行できるようにします。 (Object から継承されます。) |
| MemberwiseClone | 現在の Object の簡易コピーを作成します。 (Object から継承されます。) |
明示的インターフェイスの実装| 名前 | 説明 | |
|---|---|---|
| System.Collections.IList.Add | このメンバの説明については、Add のトピックを参照してください。 |
| System.Collections.IList.Contains | このメンバの説明については、Contains のトピックを参照してください。 |
| System.Collections.IList.IndexOf | このメンバの説明については、IndexOf のトピックを参照してください。 |
| System.Collections.IList.Insert | このメンバの説明については、Insert のトピックを参照してください。 |
| System.Collections.IList.Remove | このメンバの説明については、Remove のトピックを参照してください。 |
| System.Web.UI.IStateManager.LoadViewState | 以前に保存した状態を読み込みます。 |
| System.Web.UI.IStateManager.SaveViewState | 状態の変化を示すオブジェクトを返します。 |
| System.Web.UI.IStateManager.TrackViewState | 変化の状態の追跡を開始します。 |
| System.Collections.IList.IsFixedSize | このメンバの説明については、IsFixedSize のトピックを参照してください。 |
| System.Collections.IList.Item | このメンバの説明については、Item のトピックを参照してください。 |
| System.Web.UI.IStateManager.IsTrackingViewState | このメンバの説明については、IsTrackingViewState のトピックを参照してください。 |
参照- ListItemCollectionのページへのリンク