ListItem Classe
Définition
Important
Certaines informations portent sur la préversion du produit qui est susceptible d’être en grande partie modifiée avant sa publication. Microsoft exclut toute garantie, expresse ou implicite, concernant les informations fournies ici.
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 modèle de code de page Web Forms.
<%@ 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 dans 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 du 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 du contenu HTML interne, Textou Value des 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 :
<option value="Value 1">Inner 1</option>
Le tableau suivant répertorie la combinaison des propriétés de jeu et de la propriété correspondante utilisée pour le contenu et Value
l’attribut HTML interne rendus. Les trois colonnes à gauche répertorient la combinaison de propriétés de jeu. 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é) | Contenu HTML interne rendu | 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 contrôle ou ListBox un DropDownList contrôle.
Pour obtenir la liste des valeurs de propriété initiales d’une instance de ListItem, consultez le ListItem constructeur.
Attention
Ce contrôle peut être utilisé pour afficher l’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, Procédure : protéger contre les attaques de script dans une application web en appliquant un encodage HTML à des chaînes et Validation des entrées utilisateur dans ASP.NET pages web.
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
- ListControl
- RadioButtonList
- ListBox
- DropDownList
- CheckBoxList
- Vue d’ensemble du contrôle serveur web ListBox
- Vue d’ensemble des contrôles serveur web RadioButton et RadioButtonList
- Vue d’ensemble du contrôle serveur web BulletedList
- Vue d’ensemble du contrôle serveur web DropDownList
- Sécurisation des contrôles standard
- Guide pratique pour se protéger contre les exploits de script dans une application web en appliquant l’encodage HTML à des chaînes
- Présentation de la validation des entrées utilisateur dans ASP.NET pages web