Teilen über


ListItem Klasse

Definition

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

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
Vererbung
ListItem
Attribute
Implementiert

Beispiele

Im folgenden Beispiel wird die Verwendung von ListItem Steuerelementen innerhalb eines ListBox Steuerelements veranschaulicht.

Hinweis

Die folgenden Codebeispiele verwenden das Einzeldateicodemodell und funktionieren möglicherweise nicht ordnungsgemäß, wenn sie direkt in eine CodeBehind-Datei kopiert werden. Jedes Codebeispiel muss in eine leere Textdatei mit einer .aspx-Erweiterung kopiert werden. Weitere Informationen zum Web Forms-Codemodell finden Sie unter ASP.NET Web Forms-Seitencodemodell.

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

Hinweise

Ein ListItem -Steuerelement stellt ein einzelnes Datenelement innerhalb eines datengebundenen Listensteuerelements dar, z. B. ein ListBox - oder ein RadioButtonList -Steuerelement.

Es gibt mehrere Möglichkeiten, den Text anzugeben, der für ein Element im Listensteuerelement angezeigt wird. Die gebräuchlichste Methode ist das Platzieren von Text in den inneren HTML-Inhalt. Der innere HTML-Inhalt ist der Text zwischen den öffnenden und schließenden Tags des Steuerelements ListItem . Sie können die Text -Eigenschaft auch verwenden, um den Text anzugeben, der im Listensteuerelement für das Element angezeigt wird.

Mit Value der -Eigenschaft können Sie dem Element im Listensteuerelement zusätzlich zum im Steuerelement angezeigten Text einen Wert zuordnen. Sie können beispielsweise Text für ein Element im Listensteuerelement anzeigen, z "Item 1". B. , und die Value -Eigenschaft verwenden, um einen Wert für dieses Element anzugeben, z "$1.99". B. .

Sie können eine beliebige Kombination des inneren HTML-Inhalts, Textoder der Value Eigenschaften festlegen. Die resultierende HTML-Ausgabe für das ListItem Steuerelement hängt von der Kombination dieser drei eigenschaften ab, die festgelegt sind. Wenn beispielsweise alle drei Eigenschaften wie folgt festgelegt sind:

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

Der innere HTML-Inhalt wird für gerenderte innere HTML-Inhalte und die Value -Eigenschaft für das Value -Attribut verwendet. Die resultierende HTML-Renderingausgabe lautet:

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

In der folgenden Tabelle ist die Kombination der Seteigenschaften und der entsprechenden Eigenschaft aufgeführt, die für den gerenderten inneren HTML-Inhalt und Value das -Attribut verwendet wird. Die drei Spalten auf der linken Seite enthalten die Kombination der festgelegten Eigenschaften. Die beiden Spalten in der rechten Liste, welcher Eigenschaftswert für das entsprechende Attribut verwendet wird.

Innerer HTML-Inhalt Text-Eigenschaft Value-Eigenschaft Gerenderter innerer HTML-Inhalt Attribut "Gerenderter Wert"
Set Set Set Innerer HTML-Inhalt Value-Eigenschaft
Set Set Nicht festgelegt Innerer HTML-Inhalt Innerer HTML-Inhalt
Set Nicht festgelegt Set Innerer HTML-Inhalt Value-Eigenschaft
Set Nicht festgelegt Nicht festgelegt Innerer HTML-Inhalt Innerer HTML-Text
Nicht festgelegt Set Set Text-Eigenschaft Value-Eigenschaft
Nicht festgelegt Set Nicht festgelegt Text-Eigenschaft Text-Eigenschaft
Nicht festgelegt Nicht festgelegt Set Value-Eigenschaft Value-Eigenschaft
Nicht festgelegt Nicht festgelegt Nicht festgelegt Nicht festgelegt Nicht festgelegt

Hinweis

Da die Text Eigenschaften und Value jeweils den Standardwert einer leeren Zeichenfolge aufweisen, ist es möglich, leere Listenelemente im Listensteuerelement zu verwenden.

Wenn ein Listensteuerelement angezeigt wird, wird jedes ListItem Steuerelement, dessen Selected Eigenschaft auf festgelegt ist, true im Steuerelement hervorgehoben angezeigt.

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

Hinweis

Sie können diese Eigenschaft nicht verwenden, um ein ListItem Steuerelement in einem Steuerelement oder ListBox Steuerelement DropDownList zu deaktivieren.

Eine Liste der anfänglichen Eigenschaftswerte für eine Instanz von ListItemfinden Sie im ListItem Konstruktor.

Achtung

Dieses Steuerelement kann verwendet werden, um Benutzereingaben anzuzeigen, die möglicherweise böswillige Clientskripts enthalten. Überprüfen Sie alle Informationen, die von einem Client auf ausführbare Skripts, SQL-Anweisungen oder anderen Code gesendet werden, bevor Sie sie in Ihrer Anwendung anzeigen. Sie können Validierungssteuerelemente verwenden, um die Benutzereingabe zu überprüfen, bevor der Eingabetext in einem Steuerelement angezeigt wird. ASP.NET stellt eine Überprüfungsfunktion für Eingabeanforderungen bereit, um Skripts und HTML in Benutzereingaben zu blockieren. Weitere Informationen finden Sie unter Sichern von Standardsteuerelementen, Vorgehensweise: Schützen vor Skript-Exploits in einer Webanwendung durch Anwenden von HTML-Codierung auf Zeichenfolgen und Überprüfen von Benutzereingaben in ASP.NET Webseiten.

Konstruktoren

ListItem()

Initialisiert eine neue Instanz der ListItem-Klasse.

ListItem(String)

Initialisiert eine neue Instanz der ListItem-Klasse mit den angegebenen Textdaten.

ListItem(String, String)

Initialisiert eine neue Instanz der ListItem-Klasse mit den angegebenen Text- und Wertdaten.

ListItem(String, String, Boolean)

Initialisiert eine neue Instanz der ListItem-Klasse mit den angegebenen Text- und Wertdaten und den aktivierten Daten.

Eigenschaften

Attributes

Ruft für ListItem eine Auflistung von Attributname-Wert-Paaren ab, die von der Klasse nicht direkt unterstützt werden.

Enabled

Ruft einen Wert ab, der angibt, ob das Listenelement aktiviert ist, oder legt diesen fest.

Selected

Ruft einen Wert ab, der angibt, ob das Element ausgewählt ist, oder legt diesen fest.

Text

Ruft den Text ab, der in einem Listensteuerelement für das vom ListItem dargestellte Element angezeigt wird, oder legt diesen fest.

Value

Ruft den Wert ab, der ListItem zugeordnet ist, oder legt diesen fest.

Methoden

Equals(Object)

Bestimmt, ob das angegebene Objekt über denselben Wert und Text wie das aktuelle Listenelement verfügt.

FromString(String)

Erstellt ein ListItem aus dem angegebenen Text.

GetHashCode()

Fungiert als Hashfunktion für einen bestimmten Typ, der sich für die Verwendung in Hashalgorithmen und Datenstrukturen eignet, z. B. einer Hashtabelle.

GetType()

Ruft den Type der aktuellen Instanz ab.

(Geerbt von Object)
MemberwiseClone()

Erstellt eine flache Kopie des aktuellen Object.

(Geerbt von Object)
ToString()

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

Explizite Schnittstellenimplementierungen

IAttributeAccessor.GetAttribute(String)

Gibt den Attributwert des Listenelementsteuerelements mit dem angegebenen Attributnamen zurück.

IAttributeAccessor.SetAttribute(String, String)

Legt ein Attribut des Listenelementsteuerelements mit dem angegebenen Namen und dem angegebenen Wert fest.

IParserAccessor.AddParsedSubObject(Object)

Ermöglicht es der Text-Eigenschaft, als innerer Inhalt beibehalten zu werden.

IStateManager.IsTrackingViewState

Eine Beschreibung dieses Elements finden Sie unter IsTrackingViewState.

IStateManager.LoadViewState(Object)

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

IStateManager.SaveViewState()

Eine Beschreibung dieses Elements finden Sie unter SaveViewState().

IStateManager.TrackViewState()

Eine Beschreibung dieses Elements finden Sie unter TrackViewState().

Gilt für:

Weitere Informationen