ListItem Classe

Définition

Représente un élément de données dans un contrôle de liste lié aux données. Cette classe ne peut pas être héritée.

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
Héritage
ListItem
Attributs
Implémente

Exemples

L’exemple suivant illustre l’utilisation de ListItem contrôles dans un ListBox contrôle.

Notes

Les exemples de code suivants utilisent le modèle de code à fichier unique et peuvent ne pas fonctionner correctement s’ils sont copiés directement dans un fichier code-behind. Chaque exemple de code doit être copié dans un fichier texte vide qui a une extension .aspx. Pour plus d’informations sur le modèle de code Web Forms, consultez ASP.NET Web Forms Modèle de code de page.

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

Remarques

Un ListItem contrôle représente un élément de données individuel au sein d’un contrôle de liste lié aux données, tel qu’un ListBox ou un RadioButtonList contrôle.

Il existe plusieurs façons de spécifier le texte affiché pour un élément dans le contrôle de liste. La méthode la plus courante consiste à placer du texte dans le contenu HTML interne. Le contenu HTML interne est le texte entre les balises d’ouverture et de fermeture du ListItem contrôle. Vous pouvez également utiliser la Text propriété pour spécifier le texte affiché dans le contrôle de liste de l’élément.

La Value propriété vous permet d’associer une valeur à l’élément dans le contrôle de liste, en plus du texte affiché dans le contrôle. Par exemple, vous pouvez afficher le texte d’un élément dans le contrôle de liste, tel que "Item 1", et utiliser la Value propriété pour spécifier une valeur pour cet élément, telle que "$1.99".

Vous pouvez définir n’importe quelle combinaison de contenu HTML interne, Textou Value de propriétés. La sortie HTML résultante pour le ListItem contrôle dépend de la combinaison de ces trois propriétés qui sont définies. Par exemple, si les trois propriétés sont définies comme suit :

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

Le contenu HTML interne est utilisé pour le contenu HTML interne rendu et la Value propriété est utilisée pour l’attribut Value . La sortie de rendu HTML résultante est la suivante :

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

Le tableau suivant répertorie la combinaison des propriétés set et la propriété correspondante utilisée pour le contenu et Value l’attribut HTML interne rendus. Les trois colonnes sur la gauche répertorient la combinaison de propriétés set. Les deux colonnes de droite répertorient la valeur de propriété utilisée pour l’attribut correspondant.

Contenu HTML interne Text (propriété) Value (propriété) Rendu du contenu HTML interne Attribut Valeur rendue
Définissez Définissez Définissez Contenu HTML interne Value (propriété)
Définissez Définissez Non défini Contenu HTML interne Contenu HTML interne
Définissez Non défini Définissez Contenu HTML interne Value (propriété)
Définissez Non défini Non défini Contenu HTML interne Texte HTML interne
Non défini Définissez Définissez Text (propriété) Value (propriété)
Non défini Définissez Non défini Text (propriété) Text (propriété)
Non défini Non défini Définissez Value (propriété) Value (propriété)
Non défini Non défini Non défini Non défini Non défini

Notes

Étant donné que les Text propriétés et Value ont chacune une valeur par défaut d’une chaîne vide, il est possible d’avoir des éléments de liste vides dans le contrôle de liste.

Lorsqu’un contrôle de liste s’affiche, tout ListItem contrôle dont la Selected propriété est définie true sur apparaît en surbrillance dans le contrôle.

Le ListItem contrôle fournit la Enabled propriété pour vous permettre de spécifier si un ListItem contrôle est activé ou désactivé. Un ListItem contrôle désactivé est grisé pour indiquer qu’il ne peut pas être sélectionné. Utilisez cette propriété pour désactiver un ListItem contrôle dans un RadioButtonList contrôle ou un CheckBoxList contrôle.

Notes

Vous ne pouvez pas utiliser cette propriété pour désactiver un ListItem contrôle dans un DropDownList contrôle ou ListBox un contrôle.

Pour obtenir la liste des valeurs de propriété initiales pour une instance de ListItem, consultez le ListItem constructeur .

Attention

Ce contrôle peut être utilisé pour afficher une entrée utilisateur, qui peut inclure un script client malveillant. Vérifiez les informations envoyées à partir d’un client pour le script exécutable, les instructions SQL ou tout autre code avant de les afficher dans votre application. Vous pouvez utiliser des contrôles de validation pour vérifier l’entrée utilisateur avant d’afficher le texte d’entrée dans un contrôle. ASP.NET fournit une fonctionnalité de validation de demande d’entrée pour bloquer le script et le code HTML dans l’entrée utilisateur. Pour plus d’informations, consultez Sécurisation des contrôles standard, Guide pratique pour se protéger contre les attaques de script dans une application web en appliquant l’encodage HTML aux chaînes et Validation des entrées utilisateur dans pages Web ASP.NET.

Constructeurs

ListItem()

Initialise une nouvelle instance de la classe ListItem.

ListItem(String)

Initialise une nouvelle instance de la classe ListItem avec le texte spécifié.

ListItem(String, String)

Initialise une nouvelle instance de la classe ListItem avec le texte et la valeur spécifiés.

ListItem(String, String, Boolean)

Initialise une nouvelle instance de la classe ListItem avec le texte, la valeur et les données activées spécifiés.

Propriétés

Attributes

Obtient une collection de paires nom-valeur d'attribut pour les ListItem non directement prises en charge par la classe.

Enabled

Obtient ou définit une valeur indiquant si l'élément de liste est activé.

Selected

Obtient ou définit une valeur indiquant si l'élément est sélectionné.

Text

Obtient ou définit le texte à afficher dans un contrôle de liste pour l'élément représenté par ListItem.

Value

Obtient ou définit la valeur associée à ListItem.

Méthodes

Equals(Object)

Détermine si l'objet spécifié a la même valeur et le même texte que l'élément de liste actuel.

FromString(String)

Crée ListItem à partir du texte spécifié.

GetHashCode()

Sert de fonction de hachage pour un type particulier et convient à une utilisation dans des algorithmes de hachage et des structures de données telles qu'une table de hachage.

GetType()

Obtient le Type de l'instance actuelle.

(Hérité de Object)
MemberwiseClone()

Crée une copie superficielle du Object actuel.

(Hérité de Object)
ToString()

Retourne une chaîne qui représente l'objet actuel.

Implémentations d’interfaces explicites

IAttributeAccessor.GetAttribute(String)

Retourne la valeur d'attribut du contrôle d'élément de liste ayant le nom d'attribut spécifié.

IAttributeAccessor.SetAttribute(String, String)

Définit un attribut du contrôle d'élément de liste avec le nom et la valeur spécifiés.

IParserAccessor.AddParsedSubObject(Object)

Permet à la propriété Text d'être persistante en tant que contenu interne.

IStateManager.IsTrackingViewState

Pour obtenir une description de ce membre, consultez IsTrackingViewState.

IStateManager.LoadViewState(Object)

Pour obtenir une description de ce membre, consultez LoadViewState(Object).

IStateManager.SaveViewState()

Pour obtenir une description de ce membre, consultez SaveViewState().

IStateManager.TrackViewState()

Pour obtenir une description de ce membre, consultez TrackViewState().

S’applique à

Voir aussi