Condividi tramite


ListItem Classe

Definizione

Rappresenta un elemento di dati in un controllo elenco associato ai dati. La classe non può essere ereditata.

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
Ereditarietà
ListItem
Attributi
Implementazioni

Esempio

Nell'esempio seguente viene illustrato l'uso di controlli all'interno di ListItem un ListBox controllo .

Nota

Gli esempi di codice seguenti usano il modello di codice a file singolo e potrebbero non funzionare correttamente se copiati direttamente in un file code-behind. Ogni esempio di codice deve essere copiato in un file di testo vuoto con estensione .aspx. Per altre informazioni sul modello di codice Web Form, vedere ASP.NET modello di codice della pagina Web Form.

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

Commenti

Un ListItem controllo rappresenta un singolo elemento di dati all'interno di un controllo elenco associato a dati, ad esempio un ListBox controllo o .RadioButtonList

Esistono diversi modi per specificare il testo visualizzato per un elemento nel controllo elenco. Il metodo più comune consiste nell'inserire testo nel contenuto HTML interno. Il contenuto HTML interno è il testo tra i tag di apertura e chiusura del ListItem controllo. È anche possibile utilizzare la Text proprietà per specificare il testo visualizzato nel controllo elenco per l'elemento.

La Value proprietà consente di associare un valore all'elemento nel controllo elenco, oltre al testo visualizzato nel controllo . Ad esempio, è possibile visualizzare testo per un elemento nel controllo elenco, ad esempio "Item 1", e utilizzare la Value proprietà per specificare un valore per tale elemento, ad esempio "$1.99".

È possibile avere qualsiasi combinazione del contenuto HTML interno, Text, o Value delle proprietà impostate. L'output HTML risultante per il ListItem controllo dipende dalla combinazione di queste tre proprietà impostate. Ad esempio, se tutte e tre le proprietà sono impostate come segue:

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

Il contenuto HTML interno viene usato per il rendering del contenuto HTML interno e la Value proprietà viene usata per l'attributo Value . L'output di rendering HTML risultante è:

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

Nella tabella seguente sono elencate le combinazioni di proprietà set e la proprietà corrispondente utilizzata per il contenuto e Value l'attributo HTML interni sottoposti a rendering. Le tre colonne a sinistra elencano la combinazione di proprietà impostate. Le due colonne dell'elenco a destra vengono utilizzate per l'attributo corrispondente.

Contenuto HTML interno Text (proprietà) Value (proprietà) Rendering del contenuto HTML interno Attributo Value di cui è stato eseguito il rendering
Set Set Set Contenuto HTML interno Value (proprietà)
Set Set Non impostato Contenuto HTML interno Contenuto HTML interno
Set Non impostato Set Contenuto HTML interno Value (proprietà)
Set Non impostato Non impostato Contenuto HTML interno Testo HTML interno
Non impostato Set Set Text (proprietà) Value (proprietà)
Non impostato Set Non impostato Text (proprietà) Text (proprietà)
Non impostato Non impostato Set Value (proprietà) Value (proprietà)
Non impostato Non impostato Non impostato Non impostato Non impostato

Nota

Poiché le Text proprietà e Value hanno un valore predefinito di una stringa vuota, è possibile che nel controllo elenco siano presenti voci di elenco vuote.

Quando viene visualizzato un controllo elenco, qualsiasi ListItem controllo con la relativa Selected proprietà impostata su true viene evidenziato nel controllo .

Il ListItem controllo fornisce la Enabled proprietà per consentire di specificare se un ListItem controllo è abilitato o disabilitato. Un ListItem controllo disabilitato è disattivato per indicare che non può essere selezionato. Utilizzare questa proprietà per disabilitare un ListItem controllo in un RadioButtonList controllo o in un CheckBoxList controllo .

Nota

Non è possibile utilizzare questa proprietà per disabilitare un ListItem controllo in un controllo o ListBox in un DropDownList controllo.

Per un elenco dei valori iniziali delle proprietà per un'istanza di ListItem, vedere il ListItem costruttore .

Attenzione

Questo controllo può essere usato per visualizzare l'input dell'utente, che potrebbe includere script client dannosi. Controllare le informazioni inviate da un client per lo script eseguibile, le istruzioni SQL o altro codice prima di visualizzarlo nell'applicazione. È possibile usare i controlli di convalida per verificare l'input dell'utente prima di visualizzare il testo di input in un controllo . ASP.NET fornisce una funzionalità di convalida della richiesta di input per bloccare lo script e il codice HTML nell'input dell'utente. Per altre informazioni, vedere Protezione dei controlli standard, Procedura: Proteggere dagli exploit di script in un'applicazione Web applicando la codifica HTML alle stringhe e convalidando l'input dell'utente in ASP.NET pagine Web.

Costruttori

ListItem()

Inizializza una nuova istanza della classe ListItem.

ListItem(String)

Inizializza una nuova istanza della classe ListItem con i dati di testo specificati.

ListItem(String, String)

Inizializza una nuova istanza della classe ListItem con i dati relativi al testo e al valore specificati.

ListItem(String, String, Boolean)

Inizializza una nuova istanza della classe ListItem con il testo, il valore e i dati abilitati specificati.

Proprietà

Attributes

Ottiene una raccolta di coppie nome-valore di attributo per l'oggetto ListItem non direttamente supportati dalla classe.

Enabled

Ottiene o imposta un valore che indica se l'elemento elenco è abilitato.

Selected

Ottiene o imposta un valore che indica se l'elemento è selezionato.

Text

Ottiene o imposta il testo visualizzato in un controllo elenco per l'elemento rappresentato dall'oggetto ListItem.

Value

Ottiene o imposta il valore associato all'oggetto ListItem.

Metodi

Equals(Object)

Determina se il valore e il testo dell'oggetto specificato corrispondono a quelli dell'elemento dell'elenco corrente.

FromString(String)

Crea un oggetto ListItem in base al testo specificato.

GetHashCode()

Viene usato come funzione hash per un tipo particolare ed è adatto per l'utilizzo in algoritmi hash e in strutture di dati quali una tabella hash.

GetType()

Ottiene l'oggetto Type dell'istanza corrente.

(Ereditato da Object)
MemberwiseClone()

Crea una copia superficiale dell'oggetto Object corrente.

(Ereditato da Object)
ToString()

Restituisce una stringa che rappresenta l'oggetto corrente.

Implementazioni dell'interfaccia esplicita

IAttributeAccessor.GetAttribute(String)

Restituisce il valore dell'attributo del controllo elemento elenco con il nome di attributo specificato.

IAttributeAccessor.SetAttribute(String, String)

Imposta un attributo del controllo elemento elenco con il nome e il valore specificati.

IParserAccessor.AddParsedSubObject(Object)

Consente alla proprietà Text di essere mantenuta come contenuto interno.

IStateManager.IsTrackingViewState

Per una descrizione di questo membro, vedere IsTrackingViewState.

IStateManager.LoadViewState(Object)

Per una descrizione di questo membro, vedere LoadViewState(Object).

IStateManager.SaveViewState()

Per una descrizione di questo membro, vedere SaveViewState().

IStateManager.TrackViewState()

Per una descrizione di questo membro, vedere TrackViewState().

Si applica a

Vedi anche