Partilhar via


ListItem Classe

Definição

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