Freigeben über


ListItem-Klasse

Stellt ein Datenelement in einem datengebundenen Listensteuerelement dar. Diese Klasse kann nicht geerbt werden.

Namespace: System.Web.UI.WebControls
Assembly: System.Web (in system.web.dll)

Syntax

'Declaration
Public NotInheritable Class ListItem
    Implements IStateManager, IParserAccessor, IAttributeAccessor
'Usage
Dim instance As ListItem
public sealed class ListItem : IStateManager, IParserAccessor, IAttributeAccessor
public ref class ListItem sealed : IStateManager, IParserAccessor, IAttributeAccessor
public final class ListItem implements IStateManager, IParserAccessor, 
    IAttributeAccessor
public final class ListItem implements IStateManager, IParserAccessor, 
    IAttributeAccessor

Hinweise

Ein ListItem-Steuerelement stellt ein einzelnes Datenelement in einem datengebundenen Listensteuerelement dar, z. B. in einem ListBox-Steuerelement oder RadioButtonList-Steuerelement.

Es gibt mehrere Möglichkeiten zum Angeben des Texts, der für ein Element im Listensteuerelement angezeigt wird. Die übliche Vorgehensweise besteht darin, im inneren HTML-Inhalt Text zu platzieren. Der innere HTML-Inhalt ist der Text zwischen dem öffnenden und dem schließenden Tag des ListItem-Steuerelements. Sie können auch die Text-Eigenschaft verwenden, um den Text anzugeben, der für das Element im Listensteuerelement angezeigt wird.

Zusätzlich zu dem im Steuerelement angezeigten Text können Sie mit der Value-Eigenschaft dem Element im Listensteuerelement einen Wert zuordnen. Sie können z. B. für ein Element im Listensteuerelement Text anzeigen, wie "Item 1", und mit der Value-Eigenschaft für dieses Element einen Wert angeben, wie "$1.99".

Es kann jede beliebige Kombination des inneren HTML-Inhalts, der Text-Eigenschaft oder der Value-Eigenschaft festgelegt werden. Die resultierende HTML-Ausgabe für das ListItem-Steuerelement hängt von der Kombination dieser drei festgelegten Eigenschaften ab. Alle drei Eigenschaften können z. B. wie folgt festgelegt werden:

<asp:ListItem Value="Value 1" Text="Item 1">Inner 1</asp:ListItem>

Der innere HTML-Inhalt wird für dargestellten inneren HTML-Inhalt und die Value-Eigenschaft für das Value-Attribut verwendet. Die resultierende HTML-Ausgabe lautet wie folgt:

<option value="Value 1">Inner 1</option>

In der folgenden Tabelle wird die Kombination aus festgelegten Eigenschaften und die entsprechende Eigenschaft aufgeführt, die für den dargestellten inneren HTML-Inhalt und das Value-Attribut verwendet wird. Die drei linken Spalten enthalten die Kombination der festgelegten Eigenschaften. Die beiden rechten Spalten enthalten den Eigenschaftenwert, der für das entsprechende Attribut verwendet wird.

Innerer HTML-Inhalt

Texteigenschaft

Werteigenschaft

Dargestellter innerer HTML-Inhalt

Dargestelltes Wertattribut

Festgelegt

Festgelegt

Festgelegt

Innerer HTML-Inhalt

Werteigenschaft

Festgelegt

Festgelegt

Nicht festgelegt

Innerer HTML-Inhalt

Innerer HTML-Inhalt

Festgelegt

Nicht festgelegt

Festgelegt

Innerer HTML-Inhalt

Werteigenschaft

Festgelegt

Nicht festgelegt

Nicht festgelegt

Innerer HTML-Inhalt

Innerer HTML-Text

Nicht festgelegt

Festgelegt

Festgelegt

Texteigenschaft

Werteigenschaft

Nicht festgelegt

Festgelegt

Nicht festgelegt

Texteigenschaft

Texteigenschaft

Nicht festgelegt

Nicht festgelegt

Festgelegt

Werteigenschaft

Werteigenschaft

Nicht festgelegt

Nicht festgelegt

Nicht festgelegt

Nicht festgelegt

Nicht festgelegt

Hinweis

Da die Text-Eigenschaft und die Value-Eigenschaft den Standardwert einer leeren Zeichenfolge besitzen, können sich im Listensteuerelement leere Listenelemente befinden.

Wenn ein Listensteuerelement angezeigt wird, werden alle ListItem-Steuerelemente, deren Selected-Eigenschaft auf true festgelegt ist, im Steuerelement hervorgehoben dargestellt.

Das ListItem-Steuerelement stellt die Enabled-Eigenschaft bereit, damit Sie angeben können, ob ein ListItem-Steuerelement aktiviert oder deaktiviert ist. Ein deaktiviertes ListItem-Steuerelement wird abgeblendet, um anzuzeigen, dass es nicht ausgewählt werden kann. Verwenden Sie diese Eigenschaft, um in einem RadioButtonList-Steuerelement oder einem CheckBoxList-Steuerelement ein ListItem-Steuerelement zu deaktivieren.

Hinweis

Diese Eigenschaft kann nicht verwendet werden, um ein ListItem-Steuerelement in einem DropDownList-Steuerelement oder einem ListBox-Steuerelement zu deaktivieren.

Eine Liste der anfänglichen Eigenschaftenwerte für eine Instanz von ListItem finden Sie unter ListItem-Konstruktor.

Warnung

Dieses Steuerelement kann zum Anzeigen von Benutzereingaben verwendet werden, die u. U. bösartige Clientskripts enthalten können. Überprüfen Sie alle von einem Client gesendeten Informationen auf ausführbare Skripts, SQL-Anweisungen oder anderen Code, bevor Sie sie in der Anwendung anzeigen. Mithilfe von Validierungssteuerelementen können Sie Benutzereingaben überprüfen, bevor Sie den Eingabetext in einem Steuerelement anzeigen. ASP.NET stellt ein Feature zur Anforderungsvalidierung von Eingaben bereit, um Skripts und HTML in Benutzereingaben zu blockieren. Weitere Informationen finden Sie unter Sichern von Standardsteuerelementen, Gewusst wie: Schutz gegen Skriptangriffe in einer Webanwendung durch Anwenden von HTML-Codierung auf Zeichenfolgen und Überprüfen der Benutzereingabe in ASP.NET-Webseiten.

Thema Position
Gewusst wie: Hinzufügen von Elementen zu List-Webserversteuerelementen (Visual Studio) Erstellen von ASP.NET-Webanwendungen in Visual Studio
Gewusst wie: Hinzufügen von Elementen zu List-Webserversteuerelementen (Visual Studio) Erstellen von ASP.NET-Webanwendungen in Visual Studio
Gewusst wie: Bestimmen der Auswahl in List-Webserversteuerelementen Erstellen von ASP.NET-Webanwendungen in Visual Studio
Gewusst wie: Festlegen von Eigenschaften für Webserversteuerelemente in Auflistungen Erstellen von ASP.NET-Webanwendungen in Visual Studio
Gewusst wie: Hinzufügen von Elementen zu List-Webserversteuerelementen (Visual Studio) Erstellen von ASP.NET-Webanwendungen in Visual Studio
Gewusst wie: Bestimmen der Auswahl in List-Webserversteuerelementen Erstellen von ASP.NET-Webanwendungen in Visual Studio
Gewusst wie: Festlegen von Eigenschaften für Webserversteuerelemente in Auflistungen Erstellen von ASP.NET-Webanwendungen in Visual Studio
Gewusst wie: Bestimmen der Auswahl in List-Webserversteuerelementen Erstellen von ASP.NET-Webanwendungen
Gewusst wie: Festlegen von Eigenschaften für Webserversteuerelemente in Auflistungen Erstellen von ASP.NET-Webanwendungen
Gewusst wie: Hinzufügen von Elementen zu List-Webserversteuerelementen Erstellen von ASP.NET-Webanwendungen

Beispiel

Das folgende Beispiel veranschaulicht die Verwendung von ListItem-Steuerelementen in einem ListBox-Steuerelement.

Hinweis

In den folgenden Codebeispielen wird das Einzeldatei-Codemodell verwendet. Das Beispiel funktioniert möglicherweise nicht, wenn es direkt in eine CodeBehind-Datei kopiert wird. Jedes Codebeispiel muss in eine leere Textdatei mit einer ASPX-Erweiterung kopiert werden. Weitere Informationen zum Web Forms-Codemodell finden Sie unter Codemodell für ASP.NET-Webseiten.

<%@ 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. -->


...
<%@ 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. -->


...
<%@ 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>

.NET Framework-Sicherheit

Vererbungshierarchie

System.Object
  System.Web.UI.WebControls.ListItem

Threadsicherheit

Alle öffentlichen statischen (Shared in Visual Basic) Member dieses Typs sind threadsicher. Bei Instanzmembern ist die Threadsicherheit nicht gewährleistet.

Plattformen

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 unterstützt nicht alle Versionen sämtlicher Plattformen. Eine Liste der unterstützten Versionen finden Sie unter Systemanforderungen.

Versionsinformationen

.NET Framework

Unterstützt in: 2.0, 1.1, 1.0

Siehe auch

Referenz

ListItem-Member
System.Web.UI.WebControls-Namespace
ListControl-Klasse
RadioButtonList
ListBox-Klasse
DropDownList-Klasse
CheckBoxList-Klasse

Weitere Ressourcen

ListBox-Webserver-Steuerelement
Übersicht über die RadioButton- und RadioButtonList-Webserversteuerelemente
BulletedList-Webserver-Steuerelement
DropDownList-Webserversteuerelement
Sichern von Standardsteuerelementen
Gewusst wie: Schutz gegen Skriptangriffe in einer Webanwendung durch Anwenden von HTML-Codierung auf Zeichenfolgen
Überprüfen der Benutzereingabe in ASP.NET-Webseiten