ListItem Clase
Definición
Importante
Parte de la información hace referencia a la versión preliminar del producto, que puede haberse modificado sustancialmente antes de lanzar la versión definitiva. Microsoft no otorga ninguna garantía, explícita o implícita, con respecto a la información proporcionada aquí.
Representa un elemento de datos en un control de lista enlazado a datos. Esta clase no puede heredarse.
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
- Herencia
-
ListItem
- Atributos
- Implementaciones
Ejemplos
En el ejemplo siguiente se muestra el uso de controles dentro de ListItem un ListBox control .
Nota
Los ejemplos de código siguientes usan el modelo de código de un solo archivo y es posible que no funcionen correctamente si se copian directamente en un archivo de código subyacente. Cada ejemplo de código debe copiarse en un archivo de texto vacío que tenga una extensión .aspx. Para obtener más información sobre el modelo de código de formularios Web Forms, vea ASP.NET modelo de código de página de formularios 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>
Comentarios
Un ListItem control representa un elemento de datos individual dentro de un control de lista enlazado a datos, como un ListBox control o .RadioButtonList
Hay varias maneras de especificar el texto que se muestra para un elemento en el control de lista. El método más común es colocar texto en el contenido HTML interno. El contenido HTML interno es el texto entre las etiquetas de apertura y cierre del ListItem control. También puede usar la Text propiedad para especificar el texto que se muestra en el control de lista del elemento.
La Value propiedad permite asociar un valor al elemento del control de lista, además del texto que se muestra en el control. Por ejemplo, puede mostrar texto para un elemento en el control de lista, como "Item 1"
, y usar la Value propiedad para especificar un valor para ese elemento, como "$1.99"
.
Puede tener cualquier combinación del contenido HTML interno, Text, o Value propiedades establecidas. La salida HTML resultante para el ListItem control depende de la combinación de estas tres propiedades que se establecen. Por ejemplo, si las tres propiedades se establecen de la siguiente manera:
<asp:ListItem Value="Value 1" Text="Item 1">Inner 1</asp:ListItem>
El contenido HTML interno se usa para el contenido HTML interno representado y la Value propiedad se usa para el Value
atributo . La salida de representación HTML resultante es:
<option value="Value 1">Inner 1</option>
En la tabla siguiente se muestra la combinación de propiedades de conjunto y la propiedad correspondiente utilizada para el contenido y Value
el atributo HTML interno representados. Las tres columnas de la izquierda enumeran la combinación de propiedades de conjunto. Las dos columnas de la lista derecha que se usan para el atributo correspondiente.
Contenido HTML interno | Text (propiedad) | Value (propiedad) | Contenido HTML interno representado | Atributo Value representado |
---|---|---|---|---|
Set | Set | Set | Contenido HTML interno | Value (propiedad) |
Set | Set | Sin establecer | Contenido HTML interno | Contenido HTML interno |
Set | Sin establecer | Set | Contenido HTML interno | Value (propiedad) |
Set | Sin establecer | Sin establecer | Contenido HTML interno | Texto HTML interno |
Sin establecer | Set | Set | Text (propiedad) | Value (propiedad) |
Sin establecer | Set | Sin establecer | Text (propiedad) | Text (propiedad) |
Sin establecer | Sin establecer | Set | Value (propiedad) | Value (propiedad) |
Sin establecer | Sin establecer | Sin establecer | Sin establecer | Sin establecer |
Nota
Dado que las Text propiedades y Value tienen un valor predeterminado de una cadena vacía, es posible tener elementos de lista vacíos en el control de lista.
Cuando se muestra un control de lista, cualquier ListItem control con su Selected propiedad establecida en true
aparece resaltado en el control.
El ListItem control proporciona la Enabled propiedad para permitir especificar si un ListItem control está habilitado o deshabilitado. Un ListItem control deshabilitado está atenuado para indicar que no se puede seleccionar. Utilice esta propiedad para deshabilitar un ListItem control en un RadioButtonList control o en un CheckBoxList control .
Nota
No se puede usar esta propiedad para deshabilitar un ListItem control en un DropDownList control o ListBox control.
Para obtener una lista de valores de propiedad iniciales para una instancia de ListItem, vea el ListItem constructor .
Precaución
Este control se puede usar para mostrar la entrada del usuario, que puede incluir un script de cliente malintencionado. Compruebe cualquier información que se envíe desde un cliente para el script ejecutable, las instrucciones SQL u otro código antes de mostrarla en la aplicación. Puede usar controles de validación para comprobar la entrada del usuario antes de mostrar el texto de entrada en un control. ASP.NET proporciona una característica de validación de solicitudes de entrada para bloquear script y HTML en la entrada del usuario. Para obtener más información, vea Protección de controles estándar, Protección contra vulnerabilidades de seguridad de script en una aplicación web mediante la aplicación de codificación HTML en cadenas y validación de entradas de usuario en ASP.NET Páginas web.
Constructores
ListItem() |
Inicializa una nueva instancia de la clase ListItem. |
ListItem(String) |
Inicializa una nueva instancia de la clase ListItem con los datos de texto especificados. |
ListItem(String, String) |
Inicializa una nueva instancia de la clase ListItem con los datos de texto y valor especificados. |
ListItem(String, String, Boolean) |
Inicializa una nueva instancia de la clase ListItem con los datos de texto, valor y habilitación especificados. |
Propiedades
Attributes |
Obtiene una colección de pares de valores y nombres de atributo para ListItem que no son directamente compatibles con la clase. |
Enabled |
Obtiene o establece un valor que indica si el elemento de lista está habilitado. |
Selected |
Obtiene o establece un valor que indica si el elemento está seleccionado. |
Text |
Obtiene o establece el texto mostrado en el control de lista para el elemento representado por ListItem. |
Value |
Obtiene o establece el valor asociado a ListItem. |
Métodos
Equals(Object) |
Determina si el objeto especificado tiene el mismo valor y el mismo texto que el elemento de lista actual. |
FromString(String) |
Crea un elemento ListItem a partir del texto especificado. |
GetHashCode() |
Sirve como función hash para un tipo concreto y se puede usar en algoritmos hash y estructuras de datos, como las tablas hash. |
GetType() |
Obtiene el Type de la instancia actual. (Heredado de Object) |
MemberwiseClone() |
Crea una copia superficial del Object actual. (Heredado de Object) |
ToString() |
Devuelve una cadena que representa el objeto actual. |
Implementaciones de interfaz explícitas
IAttributeAccessor.GetAttribute(String) |
Devuelve el valor de atributo del control de elemento de lista que tiene el nombre de atributo especificado. |
IAttributeAccessor.SetAttribute(String, String) |
Establece un atributo del control de elemento de lista con el nombre y valor especificados. |
IParserAccessor.AddParsedSubObject(Object) |
Permite conservar la propiedad Text como contenido interno. |
IStateManager.IsTrackingViewState |
Para obtener una descripción de este miembro, vea IsTrackingViewState. |
IStateManager.LoadViewState(Object) |
Para obtener una descripción de este miembro, vea LoadViewState(Object). |
IStateManager.SaveViewState() |
Para obtener una descripción de este miembro, vea SaveViewState(). |
IStateManager.TrackViewState() |
Para obtener una descripción de este miembro, vea TrackViewState(). |
Se aplica a
Consulte también
- ListControl
- RadioButtonList
- ListBox
- DropDownList
- CheckBoxList
- Información general sobre el control de servidor web ListBox
- Información general sobre controles de servidor web RadioButton y RadioButtonList
- Información general sobre el control de servidor web BulletedList
- Información general sobre el control de servidor web DropDownList
- Protección de controles estándar
- Protección contra vulnerabilidades de seguridad de script en una aplicación web mediante la aplicación de codificación HTML en cadenas
- Introducción a la validación de entradas de usuario en ASP.NET páginas web