ListItem Classe
Definição
Importante
Algumas informações se referem a produtos de pré-lançamento que podem ser substancialmente modificados antes do lançamento. A Microsoft não oferece garantias, expressas ou implícitas, das informações aqui fornecidas.
Representa um item de dados em um controle de lista associado a dados. Essa classe não pode ser herdada.
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
- Herança
-
ListItem
- Atributos
- Implementações
Exemplos
O exemplo a seguir ilustra o uso de controles dentro de ListItem um ListBox controle.
Observação
Os exemplos de código a seguir usam o modelo de código de arquivo único e podem não funcionar corretamente se forem copiados diretamente em um arquivo code-behind. Cada exemplo de código deve ser copiado em um arquivo de texto vazio que tenha uma extensão .aspx. Para obter mais informações sobre o modelo de código do Web Forms, consulte ASP.NET Modelo de Código de Página dos 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>
Comentários
Um ListItem controle representa um item de dados individual dentro de um controle de lista associada a dados, como um ListBox ou um RadioButtonList controle.
Há várias maneiras de especificar o texto exibido para um item no controle de lista. O método mais comum é colocar o texto no conteúdo HTML interno. O conteúdo HTML interno é o texto entre as marcas de abertura e fechamento do ListItem controle. Você também pode usar a Text propriedade para especificar o texto exibido no controle de lista para o item.
A Value propriedade permite associar um valor ao item no controle de lista, além do texto exibido no controle . Por exemplo, você pode exibir texto para um item no controle de lista, como "Item 1"
, e usar a Value propriedade para especificar um valor para esse item, como "$1.99"
.
Você pode ter qualquer combinação do conteúdo HTML interno, Textou Value conjunto de propriedades. A saída HTML resultante para o ListItem controle depende da combinação dessas três propriedades definidas. Por exemplo, se todas as três propriedades forem definidas da seguinte maneira:
<asp:ListItem Value="Value 1" Text="Item 1">Inner 1</asp:ListItem>
O conteúdo HTML interno é usado para conteúdo HTML interno renderizado e a Value propriedade é usada para o Value
atributo . A saída de renderização HTML resultante é:
<option value="Value 1">Inner 1</option>
A tabela a seguir lista a combinação de propriedades do conjunto e a propriedade correspondente usada para o conteúdo e Value
o atributo HTML interno renderizados. As três colunas à esquerda listam a combinação de propriedades do conjunto. As duas colunas na lista à direita qual valor da propriedade é usado para o atributo correspondente.
Conteúdo HTML interno | Propriedade Text | Propriedade Value | Conteúdo HTML interno renderizado | Atributo Valor Renderizado |
---|---|---|---|---|
Definição | Definição | Definição | Conteúdo HTML interno | Propriedade Value |
Definição | Definição | Não definido | Conteúdo HTML interno | Conteúdo HTML interno |
Definição | Não definido | Definição | Conteúdo HTML interno | Propriedade Value |
Definição | Não definido | Não definido | Conteúdo HTML interno | Texto HTML interno |
Não definido | Definição | Definição | Propriedade Text | Propriedade Value |
Não definido | Definição | Não definido | Propriedade Text | Propriedade Text |
Não definido | Não definido | Definição | Propriedade Value | Propriedade Value |
Não definido | Não definido | Não definido | Não definido | Não definido |
Observação
Como as Text propriedades e Value têm um valor padrão de uma cadeia de caracteres vazia, é possível ter itens de lista vazios no controle de lista.
Quando um controle de lista é exibido, qualquer ListItem controle com sua Selected propriedade definida como true
aparece realçado no controle .
O ListItem controle fornece a Enabled propriedade para permitir que você especifique se um ListItem controle está habilitado ou desabilitado. Um ListItem controle desabilitado está esmaecido para indicar que ele não pode ser selecionado. Use essa propriedade para desabilitar um ListItem controle em um RadioButtonList controle ou em um CheckBoxList controle.
Observação
Você não pode usar essa propriedade para desabilitar um ListItem controle em um DropDownList controle ou ListBox controle.
Para obter uma lista de valores de propriedade iniciais de uma instância do ListItem, consulte o ListItem construtor.
Cuidado
Esse controle pode ser usado para exibir a entrada do usuário, que pode incluir script de cliente mal-intencionado. Verifique as informações enviadas de um cliente para script executável, instruções SQL ou outro código antes de exibi-lo em seu aplicativo. Você pode usar controles de validação para verificar a entrada do usuário antes de exibir o texto de entrada em um controle. ASP.NET fornece um recurso de validação de solicitação de entrada para bloquear script e HTML na entrada do usuário. Para obter mais informações, consulte Protegendo controles padrão, Como proteger contra explorações de script em um aplicativo Web aplicando codificação HTML a cadeias de caracteres e validando a entrada do usuário em ASP.NET Páginas da Web.
Construtores
ListItem() |
Inicializa uma nova instância da classe ListItem. |
ListItem(String) |
Inicializa uma nova instância da classe ListItem com os dados de texto especificados. |
ListItem(String, String) |
Inicializa uma nova instância da classe ListItem com os dados de valor e texto especificados. |
ListItem(String, String, Boolean) |
Inicializa uma nova instância da classe ListItem com o texto, o valor e os dados habilitados especificados. |
Propriedades
Attributes |
Obtém uma coleção de pares nome-valor de atributo do ListItem que não tem suporte diretamente com a classe. |
Enabled |
Obtém ou define um valor que indica se o item de lista está habilitado. |
Selected |
Obtém ou define um valor que indica se o item está selecionado. |
Text |
Obtém ou define o texto exibido em um controle de lista para o item representado pelo ListItem. |
Value |
Obtém ou define o valor associado ao ListItem. |
Métodos
Equals(Object) |
Determina se o objeto especificado tem o mesmo valor e o mesmo texto que o item de lista atual. |
FromString(String) |
Cria um ListItem do texto especificado. |
GetHashCode() |
Serve como uma função de hash para um tipo específico e é adequado para uso em algoritmos de hash e estruturas de dados como uma tabela de hash. |
GetType() |
Obtém o Type da instância atual. (Herdado de Object) |
MemberwiseClone() |
Cria uma cópia superficial do Object atual. (Herdado de Object) |
ToString() |
Retorna uma cadeia de caracteres que representa o objeto atual. |
Implantações explícitas de interface
IAttributeAccessor.GetAttribute(String) |
Retorna o valor do atributo do controle de item de lista com o nome do atributo especificado. |
IAttributeAccessor.SetAttribute(String, String) |
Define um atributo do controle de item de lista com o nome e o valor especificados. |
IParserAccessor.AddParsedSubObject(Object) |
Permite que a propriedade Text seja mantida como conteúdo interno. |
IStateManager.IsTrackingViewState |
Para obter uma descrição desse membro, confira IsTrackingViewState. |
IStateManager.LoadViewState(Object) |
Para obter uma descrição desse membro, confira LoadViewState(Object). |
IStateManager.SaveViewState() |
Para obter uma descrição desse membro, confira SaveViewState(). |
IStateManager.TrackViewState() |
Para obter uma descrição desse membro, confira TrackViewState(). |
Aplica-se a
Confira também
- ListControl
- RadioButtonList
- ListBox
- DropDownList
- CheckBoxList
- Visão geral do controle do servidor Web ListBox
- Visão geral dos controles do servidor Web RadioButton e RadioButtonList
- Visão geral do controle do servidor Web BulletedList
- Visão geral do controle do servidor Web DropDownList
- Protegendo controles padrão
- Como proteger contra explorações de script em um aplicativo Web aplicando codificação HTML a cadeias de caracteres
- Introdução à validação da entrada do usuário em páginas da Web ASP.NET