ListItemCollection Klasa
Definicja
Ważne
Niektóre informacje odnoszą się do produktu w wersji wstępnej, który może zostać znacząco zmodyfikowany przed wydaniem. Firma Microsoft nie udziela żadnych gwarancji, jawnych lub domniemanych, w odniesieniu do informacji podanych w tym miejscu.
Kolekcja ListItem obiektów w kontrolce listy. Klasa ta nie może być dziedziczona.
public ref class ListItemCollection sealed : System::Collections::IList, System::Web::UI::IStateManager
public sealed class ListItemCollection : System.Collections.IList, System.Web.UI.IStateManager
type ListItemCollection = class
interface IList
interface ICollection
interface IEnumerable
interface IStateManager
type ListItemCollection = class
interface ICollection
interface IEnumerable
interface IList
interface IStateManager
Public NotInheritable Class ListItemCollection
Implements IList, IStateManager
- Dziedziczenie
-
ListItemCollection
- Implementuje
Przykłady
W poniższym przykładzie kodu pokazano tworzenie ListItemCollection obiektów, dodawanie elementów do kolekcji i usuwanie elementów z kolekcji. W tym przykładzie ListItemCollection nazwa listBoxData
jest używana jako źródło danych dla ListBox kontrolki o nazwie ListBox1
, a wywołanie ListItemCollection ddBoxData
jest używane jako źródło danych dla DropDownList kontrolki o nazwie DropDownList1
.
<%@ 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 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)
{
// <Snippet5>
// 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();
//</Snippet5>
// 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)
{
//<Snippet6>
//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);
//</Snippet6>
}
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>
<html xmlns="http://www.w3.org/1999/xhtml" >
<head>
<title>ASP.NET Example</title>
</head>
<body>
<form id="form1" 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="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">
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
' <Snippet5>
' 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()
' </Snippet5>
' 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
' <Snippet6>
' Add the selected item to DropDownList1.
DropDownList1.Items.Add(ListBox1.SelectedItem)
' Delete the selected item from ListBox1.
ListBox1.Items.Remove(ListBox1.SelectedItem)
' </Snippet6>
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>
<html xmlns="http://www.w3.org/1999/xhtml" >
<head>
<title>ASP.NET Example</title>
</head>
<body>
<form id="form1" 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 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>
Uwagi
Klasa ListItemCollection reprezentuje kolekcję ListItem obiektów. Obiekty ListItem z kolei reprezentują elementy wyświetlane w kontrolkach listy, takich jak ListBox. Aby programowo pobrać ListItem obiekty z kontrolki listy, użyj jednej z następujących metod:
Użyj indeksatora, aby pobrać pojedynczy element ListItem z kolekcji przy użyciu notacji tablicowej.
CopyTo Użyj metody , aby skopiować zawartość kolekcji do System.Array obiektu, który następnie może służyć do pobierania elementów z kolekcji.
GetEnumerator Użyj metody , aby utworzyć zaimplementowany System.Collections.IEnumerator obiekt, który następnie może służyć do pobierania elementów z kolekcji.
Użyj
foreach
(C#) lubFor Each
(Visual Basic), aby iterować po kolekcji.
Właściwość Count określa całkowitą liczbę elementów w kolekcji i jest często używana do określenia górnej granicy kolekcji. Elementy z kolekcji można dodawać i usuwać przy użyciu Add metod i Remove .
Konstruktory
ListItemCollection() |
Inicjuje nowe wystąpienie klasy ListItemCollection. |
Właściwości
Capacity |
Pobiera lub ustawia maksymalną liczbę elementów, które ListItemCollection mogą być przechowywane. |
Count |
Pobiera liczbę ListItem obiektów w kolekcji. |
IsReadOnly |
Pobiera wartość wskazującą, czy kolekcja ListItemCollection jest przeznaczona tylko do odczytu. |
IsSynchronized |
Pobiera wartość wskazującą, czy dostęp do elementu ListItemCollection jest synchronizowany (bezpieczny wątkowo). |
Item[Int32] |
Pobiera obiekt ListItem w określonym indeksie w kolekcji. |
SyncRoot |
Pobiera obiekt, który może służyć do synchronizowania dostępu do obiektu ListItemCollection. |
Metody
Add(ListItem) |
Dołącza określony ListItem element na końcu kolekcji. |
Add(String) |
Dołącza obiekt ListItem na końcu kolekcji, która reprezentuje określony ciąg. |
AddRange(ListItem[]) |
Dodaje elementy w tablicy ListItem obiektów do kolekcji. |
Clear() |
Usuwa wszystkie ListItem obiekty z kolekcji. |
Contains(ListItem) |
Określa, czy kolekcja zawiera określony element. |
CopyTo(Array, Int32) |
Kopiuje elementy z ListItemCollection obiektu do określonego Array, począwszy od określonego indeksu. |
Equals(Object) |
Określa, czy dany obiekt jest taki sam, jak bieżący obiekt. (Odziedziczone po Object) |
FindByText(String) |
Wyszukuje kolekcję ListItem za pomocą Text właściwości, która jest równa określonemu tekstowi. |
FindByValue(String) |
Wyszukuje kolekcję ListItem za pomocą Value właściwości zawierającej określoną wartość. |
GetEnumerator() |
Zwraca zaimplementowany IEnumerator obiekt, który zawiera wszystkie ListItem obiekty w obiekcie ListItemCollection. |
GetHashCode() |
Służy jako domyślna funkcja skrótu. (Odziedziczone po Object) |
GetType() |
Type Pobiera wartość bieżącego wystąpienia. (Odziedziczone po Object) |
IndexOf(ListItem) |
Określa wartość indeksu reprezentującą pozycję określonej ListItem w kolekcji. |
Insert(Int32, ListItem) |
Wstawia element określony ListItem w kolekcji w określonej lokalizacji indeksu. |
Insert(Int32, String) |
Wstawia element ListItem reprezentujący określony ciąg w kolekcji w określonej lokalizacji indeksu. |
MemberwiseClone() |
Tworzy płytkią kopię bieżącego Objectelementu . (Odziedziczone po Object) |
Remove(ListItem) |
Usuwa określony ListItem element z kolekcji. |
Remove(String) |
Usuwa obiekt ListItem reprezentowany przez określony ciąg z kolekcji. |
RemoveAt(Int32) |
Usuwa element z ListItem określonego indeksu z kolekcji. |
ToString() |
Zwraca ciąg reprezentujący bieżący obiekt. (Odziedziczone po Object) |
Jawne implementacje interfejsu
IList.Add(Object) |
Aby uzyskać opis tego członka, zobacz Add(Object). |
IList.Contains(Object) |
Aby uzyskać opis tego członka, zobacz Contains(Object). |
IList.IndexOf(Object) |
Aby uzyskać opis tego członka, zobacz IndexOf(Object). |
IList.Insert(Int32, Object) |
Aby uzyskać opis tego członka, zobacz Insert(Int32, Object). |
IList.IsFixedSize |
Aby uzyskać opis tego członka, zobacz IsFixedSize. |
IList.Item[Int32] |
Aby uzyskać opis tego członka, zobacz Item[Int32]. |
IList.Remove(Object) |
Aby uzyskać opis tego członka, zobacz Remove(Object). |
IStateManager.IsTrackingViewState |
Aby uzyskać opis tego członka, zobacz IsTrackingViewState. |
IStateManager.LoadViewState(Object) |
Ładuje wcześniej zapisany stan. |
IStateManager.SaveViewState() |
Zwraca obiekt zawierający zmiany stanu. |
IStateManager.TrackViewState() |
Rozpoczyna śledzenie stanu zmian. |
Metody rozszerzania
Cast<TResult>(IEnumerable) |
Rzutuje elementy elementu IEnumerable na określony typ. |
OfType<TResult>(IEnumerable) |
Filtruje elementy IEnumerable elementu na podstawie określonego typu. |
AsParallel(IEnumerable) |
Umożliwia równoległość zapytania. |
AsQueryable(IEnumerable) |
Konwertuje element IEnumerable na .IQueryable |