ListItem Classe
Definizione
Importante
Alcune informazioni sono relative alla release non definitiva del prodotto, che potrebbe subire modifiche significative prima della release definitiva. Microsoft non riconosce alcuna garanzia, espressa o implicita, in merito alle informazioni qui fornite.
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
- ListControl
- RadioButtonList
- ListBox
- DropDownList
- CheckBoxList
- Cenni preliminari sul controllo server Web ListBox
- Panoramica dei controlli server Web RadioButton e RadioButtonList
- Cenni preliminari sul controllo server Web BulletedList
- Cenni preliminari sul controllo server Web DropDownList
- Protezione dei controlli standard
- Procedura: Proteggere dagli exploit di script in un'applicazione Web applicando la codifica HTML alle stringhe
- Introduzione alla convalida dell'input utente in ASP.NET pagine Web