Auf Englisch lesen

Teilen über


ListItemCollection Klasse

Definition

Eine Auflistung von ListItem-Objekten in einem Listensteuerelement. Diese Klasse kann nicht vererbt werden.

C#
public sealed class ListItemCollection : System.Collections.IList, System.Web.UI.IStateManager
Vererbung
ListItemCollection
Implementiert

Beispiele

Das folgende Codebeispiel veranschaulicht das Erstellen von ListItemCollection Objekten, das Hinzufügen von Elementen zu den Auflistungen und das Entfernen von Elementen aus den Auflistungen. Im Beispiel wird der ListItemCollection Benannte listBoxData als Datenquelle für ein ListBox Steuerelement ListBox1verwendet, das aufgerufen wird, und der aufgerufene ddBoxData Wird als Datenquelle für ein DropDownList Steuerelement verwendet, das ListItemCollection aufgerufen DropDownList1wird.

ASP.NET (C#)
<%@ 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>
ASP.NET (C#)
<!-- 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. -->

ASP.NET (C#)
<%@ 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>

Hinweise

Die ListItemCollection-Klasse stellt eine Auflistung von ListItem-Objekten dar. Die ListItem Objekte stellen wiederum die Elemente dar, die in Listensteuerelementen angezeigt werden, z. B. die ListBox. Verwenden Sie eine der folgenden Methoden, um Objekte programmgesteuert aus einem Listensteuerelement abzurufen ListItem :

  • Verwenden Sie den Indexer, um eine Einzelne ListItem aus der Auflistung mithilfe der Arraynotation abzurufen.

  • Verwenden Sie die CopyTo Methode, um den Inhalt der Auflistung in ein System.Array Objekt zu kopieren, das dann verwendet werden kann, um Elemente aus der Auflistung abzurufen.

  • Verwenden Sie die GetEnumerator Methode, um ein implementiertes System.Collections.IEnumerator Objekt zu erstellen, das dann zum Abrufen von Elementen aus der Auflistung verwendet werden kann.

  • Verwenden Sie foreach (C#) oder For Each (Visual Basic) zum Durchlaufen der Auflistung.

Die Count Eigenschaft gibt die Gesamtanzahl der Elemente in der Auflistung an und wird häufig verwendet, um die obere Grenze der Auflistung zu bestimmen. Sie können Elemente aus der Auflistung mithilfe der Add methoden Remove hinzufügen und entfernen.

Konstruktoren

ListItemCollection()

Initialisiert eine neue Instanz der ListItemCollection-Klasse.

Eigenschaften

Capacity

Ruft die maximale Anzahl der Elemente ab, die von der ListItemCollection gespeichert werden können, oder legt diese fest.

Count

Ruft die Anzahl der ListItem-Objekte in der Auflistung ab.

IsReadOnly

Ruft einen Wert ab, der angibt, ob das ListItemCollection schreibgeschützt ist.

IsSynchronized

Ruft einen Wert ab, der angibt, ob der Zugriff auf die ListItemCollection synchronisiert (threadsicher) ist.

Item[Int32]

Ruft ein ListItem am angegebenen Index in der Auflistung ab.

SyncRoot

Ruft das Objekt ab, mit dem der Zugriff auf ListItemCollection synchronisiert werden kann.

Methoden

Add(ListItem)

Fügt das angegebene ListItem an das Ende der Auflistung an.

Add(String)

Fügt ein ListItem an das Ende der Auflistung an, das die angegebene Zeichenfolge darstellt.

AddRange(ListItem[])

Fügt der Auflistung die Elemente eines Arrays von ListItem-Objekten hinzu.

Clear()

Entfernt alle ListItem-Objekte aus der Auflistung.

Contains(ListItem)

Bestimmt, ob die Auflistung das angegebene Element enthält.

CopyTo(Array, Int32)

Kopiert die Elemente aus der ListItemCollection in das angegebene Array, wobei am angegebenen Index begonnen wird.

Equals(Object)

Bestimmt, ob das angegebene Objekt gleich dem aktuellen Objekt ist.

(Geerbt von Object)
FindByText(String)

Sucht in der Auflistung nach einem ListItem mit einer Text-Eigenschaft, die dem angegebenen Text entspricht.

FindByValue(String)

Sucht in der Auflistung nach einem ListItem mit einer Value-Eigenschaft, die den angegebenen Wert enthält.

GetEnumerator()

Gibt ein IEnumerator-implementiertes Objekt zurück, das alle ListItem-Objekte in ListItemCollection enthält.

GetHashCode()

Fungiert als Standardhashfunktion.

(Geerbt von Object)
GetType()

Ruft den Type der aktuellen Instanz ab.

(Geerbt von Object)
IndexOf(ListItem)

Bestimmt den Indexwert, der die Position des angegebenen ListItem in der Auflistung darstellt.

Insert(Int32, ListItem)

Fügt das angegebene ListItem an der angegebenen Indexposition in die Auflistung ein.

Insert(Int32, String)

Fügt ein ListItem, das die angegebene Zeichenfolge darstellt, an der angegebenen Indexposition in die Auflistung ein.

MemberwiseClone()

Erstellt eine flache Kopie des aktuellen Object.

(Geerbt von Object)
Remove(ListItem)

Entfernt den angegebenen ListItem aus der Auflistung.

Remove(String)

Entfernt das ListItem-Element, das durch die angegebene Zeichenfolge dargestellt wird, aus der Sammlung.

RemoveAt(Int32)

Entfernt die ListItem-Klasse am angegebenen Index aus der Auflistung.

ToString()

Gibt eine Zeichenfolge zurück, die das aktuelle Objekt darstellt.

(Geerbt von Object)

Explizite Schnittstellenimplementierungen

IList.Add(Object)

Eine Beschreibung dieses Elements finden Sie unter Add(Object).

IList.Contains(Object)

Eine Beschreibung dieses Elements finden Sie unter Contains(Object).

IList.IndexOf(Object)

Eine Beschreibung dieses Elements finden Sie unter IndexOf(Object).

IList.Insert(Int32, Object)

Eine Beschreibung dieses Elements finden Sie unter Insert(Int32, Object).

IList.IsFixedSize

Eine Beschreibung dieses Elements finden Sie unter IsFixedSize.

IList.Item[Int32]

Eine Beschreibung dieses Elements finden Sie unter Item[Int32].

IList.Remove(Object)

Eine Beschreibung dieses Elements finden Sie unter Remove(Object).

IStateManager.IsTrackingViewState

Eine Beschreibung dieses Elements finden Sie unter IsTrackingViewState.

IStateManager.LoadViewState(Object)

Lädt den zuvor gespeicherten Zustand.

IStateManager.SaveViewState()

Gibt ein Objekt zurück, das Zustandsänderungen enthält.

IStateManager.TrackViewState()

Startet das Verfolgen von Zustandsänderungen.

Erweiterungsmethoden

Cast<TResult>(IEnumerable)

Wandelt die Elemente eines IEnumerable in den angegebenen Typ um

OfType<TResult>(IEnumerable)

Filtert die Elemente eines IEnumerable anhand eines angegebenen Typs

AsParallel(IEnumerable)

Ermöglicht die Parallelisierung einer Abfrage.

AsQueryable(IEnumerable)

Konvertiert einen IEnumerable in einen IQueryable.

Gilt für

Produkt Versionen
.NET Framework 1.1, 2.0, 3.0, 3.5, 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8

Siehe auch