ListItem Klasse
Definition
Wichtig
Einige Informationen beziehen sich auf Vorabversionen, die vor dem Release ggf. grundlegend überarbeitet werden. Microsoft übernimmt hinsichtlich der hier bereitgestellten Informationen keine Gewährleistungen, seien sie ausdrücklich oder konkludent.
Stellt ein Datenelement in einem datengebundenen Listensteuerelement dar. Diese Klasse kann nicht vererbt werden.
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
- Vererbung
-
ListItem
- Attribute
- Implementiert
Beispiele
Im folgenden Beispiel wird die Verwendung von ListItem Steuerelementen innerhalb eines ListBox Steuerelements veranschaulicht.
Hinweis
Die folgenden Codebeispiele verwenden das Einzeldateicodemodell und funktionieren möglicherweise nicht ordnungsgemäß, wenn sie direkt in eine CodeBehind-Datei kopiert werden. Jedes Codebeispiel muss in eine leere Textdatei mit einer .aspx-Erweiterung kopiert werden. Weitere Informationen zum Web Forms-Codemodell finden Sie unter ASP.NET Web Forms-Seitencodemodell.
<%@ 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>
Hinweise
Ein ListItem -Steuerelement stellt ein einzelnes Datenelement innerhalb eines datengebundenen Listensteuerelements dar, z. B. ein ListBox - oder ein RadioButtonList -Steuerelement.
Es gibt mehrere Möglichkeiten, den Text anzugeben, der für ein Element im Listensteuerelement angezeigt wird. Die gebräuchlichste Methode ist das Platzieren von Text in den inneren HTML-Inhalt. Der innere HTML-Inhalt ist der Text zwischen den öffnenden und schließenden Tags des Steuerelements ListItem . Sie können die Text -Eigenschaft auch verwenden, um den Text anzugeben, der im Listensteuerelement für das Element angezeigt wird.
Mit Value der -Eigenschaft können Sie dem Element im Listensteuerelement zusätzlich zum im Steuerelement angezeigten Text einen Wert zuordnen. Sie können beispielsweise Text für ein Element im Listensteuerelement anzeigen, z "Item 1"
. B. , und die Value -Eigenschaft verwenden, um einen Wert für dieses Element anzugeben, z "$1.99"
. B. .
Sie können eine beliebige Kombination des inneren HTML-Inhalts, Textoder der Value Eigenschaften festlegen. Die resultierende HTML-Ausgabe für das ListItem Steuerelement hängt von der Kombination dieser drei eigenschaften ab, die festgelegt sind. Wenn beispielsweise alle drei Eigenschaften wie folgt festgelegt sind:
<asp:ListItem Value="Value 1" Text="Item 1">Inner 1</asp:ListItem>
Der innere HTML-Inhalt wird für gerenderte innere HTML-Inhalte und die Value -Eigenschaft für das Value
-Attribut verwendet. Die resultierende HTML-Renderingausgabe lautet:
<option value="Value 1">Inner 1</option>
In der folgenden Tabelle ist die Kombination der Seteigenschaften und der entsprechenden Eigenschaft aufgeführt, die für den gerenderten inneren HTML-Inhalt und Value
das -Attribut verwendet wird. Die drei Spalten auf der linken Seite enthalten die Kombination der festgelegten Eigenschaften. Die beiden Spalten in der rechten Liste, welcher Eigenschaftswert für das entsprechende Attribut verwendet wird.
Innerer HTML-Inhalt | Text-Eigenschaft | Value-Eigenschaft | Gerenderter innerer HTML-Inhalt | Attribut "Gerenderter Wert" |
---|---|---|---|---|
Set | Set | Set | Innerer HTML-Inhalt | Value-Eigenschaft |
Set | Set | Nicht festgelegt | Innerer HTML-Inhalt | Innerer HTML-Inhalt |
Set | Nicht festgelegt | Set | Innerer HTML-Inhalt | Value-Eigenschaft |
Set | Nicht festgelegt | Nicht festgelegt | Innerer HTML-Inhalt | Innerer HTML-Text |
Nicht festgelegt | Set | Set | Text-Eigenschaft | Value-Eigenschaft |
Nicht festgelegt | Set | Nicht festgelegt | Text-Eigenschaft | Text-Eigenschaft |
Nicht festgelegt | Nicht festgelegt | Set | Value-Eigenschaft | Value-Eigenschaft |
Nicht festgelegt | Nicht festgelegt | Nicht festgelegt | Nicht festgelegt | Nicht festgelegt |
Hinweis
Da die Text Eigenschaften und Value jeweils den Standardwert einer leeren Zeichenfolge aufweisen, ist es möglich, leere Listenelemente im Listensteuerelement zu verwenden.
Wenn ein Listensteuerelement angezeigt wird, wird jedes ListItem Steuerelement, dessen Selected Eigenschaft auf festgelegt ist, true
im Steuerelement hervorgehoben angezeigt.
Das ListItem -Steuerelement stellt die -Eigenschaft bereit, mit der Enabled Sie angeben können, ob ein ListItem Steuerelement aktiviert oder deaktiviert ist. Ein ListItem deaktiviertes Steuerelement wird abgeblendet, um anzugeben, dass es nicht ausgewählt werden kann. Verwenden Sie diese Eigenschaft, um ein ListItem Steuerelement in einem RadioButtonList Steuerelement oder einem CheckBoxList Steuerelement zu deaktivieren.
Hinweis
Sie können diese Eigenschaft nicht verwenden, um ein ListItem Steuerelement in einem Steuerelement oder ListBox Steuerelement DropDownList zu deaktivieren.
Eine Liste der anfänglichen Eigenschaftswerte für eine Instanz von ListItemfinden Sie im ListItem Konstruktor.
Achtung
Dieses Steuerelement kann verwendet werden, um Benutzereingaben anzuzeigen, die möglicherweise böswillige Clientskripts enthalten. Überprüfen Sie alle Informationen, die von einem Client auf ausführbare Skripts, SQL-Anweisungen oder anderen Code gesendet werden, bevor Sie sie in Ihrer Anwendung anzeigen. Sie können Validierungssteuerelemente verwenden, um die Benutzereingabe zu überprüfen, bevor der Eingabetext in einem Steuerelement angezeigt wird. ASP.NET stellt eine Überprüfungsfunktion für Eingabeanforderungen bereit, um Skripts und HTML in Benutzereingaben zu blockieren. Weitere Informationen finden Sie unter Sichern von Standardsteuerelementen, Vorgehensweise: Schützen vor Skript-Exploits in einer Webanwendung durch Anwenden von HTML-Codierung auf Zeichenfolgen und Überprüfen von Benutzereingaben in ASP.NET Webseiten.
Konstruktoren
ListItem() |
Initialisiert eine neue Instanz der ListItem-Klasse. |
ListItem(String) |
Initialisiert eine neue Instanz der ListItem-Klasse mit den angegebenen Textdaten. |
ListItem(String, String) |
Initialisiert eine neue Instanz der ListItem-Klasse mit den angegebenen Text- und Wertdaten. |
ListItem(String, String, Boolean) |
Initialisiert eine neue Instanz der ListItem-Klasse mit den angegebenen Text- und Wertdaten und den aktivierten Daten. |
Eigenschaften
Attributes |
Ruft für ListItem eine Auflistung von Attributname-Wert-Paaren ab, die von der Klasse nicht direkt unterstützt werden. |
Enabled |
Ruft einen Wert ab, der angibt, ob das Listenelement aktiviert ist, oder legt diesen fest. |
Selected |
Ruft einen Wert ab, der angibt, ob das Element ausgewählt ist, oder legt diesen fest. |
Text |
Ruft den Text ab, der in einem Listensteuerelement für das vom ListItem dargestellte Element angezeigt wird, oder legt diesen fest. |
Value |
Ruft den Wert ab, der ListItem zugeordnet ist, oder legt diesen fest. |
Methoden
Equals(Object) |
Bestimmt, ob das angegebene Objekt über denselben Wert und Text wie das aktuelle Listenelement verfügt. |
FromString(String) |
Erstellt ein ListItem aus dem angegebenen Text. |
GetHashCode() |
Fungiert als Hashfunktion für einen bestimmten Typ, der sich für die Verwendung in Hashalgorithmen und Datenstrukturen eignet, z. B. einer Hashtabelle. |
GetType() |
Ruft den Type der aktuellen Instanz ab. (Geerbt von Object) |
MemberwiseClone() |
Erstellt eine flache Kopie des aktuellen Object. (Geerbt von Object) |
ToString() |
Gibt eine Zeichenfolge zurück, die das aktuelle Objekt darstellt. |
Explizite Schnittstellenimplementierungen
IAttributeAccessor.GetAttribute(String) |
Gibt den Attributwert des Listenelementsteuerelements mit dem angegebenen Attributnamen zurück. |
IAttributeAccessor.SetAttribute(String, String) |
Legt ein Attribut des Listenelementsteuerelements mit dem angegebenen Namen und dem angegebenen Wert fest. |
IParserAccessor.AddParsedSubObject(Object) |
Ermöglicht es der Text-Eigenschaft, als innerer Inhalt beibehalten zu werden. |
IStateManager.IsTrackingViewState |
Eine Beschreibung dieses Elements finden Sie unter IsTrackingViewState. |
IStateManager.LoadViewState(Object) |
Eine Beschreibung dieses Elements finden Sie unter LoadViewState(Object). |
IStateManager.SaveViewState() |
Eine Beschreibung dieses Elements finden Sie unter SaveViewState(). |
IStateManager.TrackViewState() |
Eine Beschreibung dieses Elements finden Sie unter TrackViewState(). |
Gilt für:
Weitere Informationen
- ListControl
- RadioButtonList
- ListBox
- DropDownList
- CheckBoxList
- Übersicht über das ListBox-Webserversteuerelement
- Übersicht über RadioButton- und RadioButtonList-Webserversteuerelemente
- Übersicht über bulletedList-Webserversteuerelemente
- Übersicht über das DropDownList-Webserversteuerelement
- Sichern von Standardsteuerelementen
- Vorgehensweise: Schutz vor Skript-Exploits in einer Webanwendung durch Anwenden der HTML-Codierung auf Zeichenfolgen
- Einführung in das Überprüfen von Benutzereingaben in ASP.NET Webseiten