ListItem Klasa
Definicja
Ważne
Niektóre informacje odnoszą się do produktu w wersji wstępnej, który może zostać znacząco zmodyfikowany przed wydaniem. Firma Microsoft nie udziela żadnych gwarancji, jawnych lub domniemanych, w odniesieniu do informacji podanych w tym miejscu.
Reprezentuje element danych w kontrolce listy powiązanej z danymi. Klasa ta nie może być dziedziczona.
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
- Dziedziczenie
-
ListItem
- Atrybuty
- Implementuje
Przykłady
Poniższy przykład ilustruje użycie ListItem kontrolek w kontrolce ListBox .
Uwaga
Poniższe przykłady kodu używają modelu kodu jednokrotnego i mogą nie działać poprawnie, jeśli skopiowano bezpośrednio do pliku kodu za pomocą kodu. Każdy przykładowy kod musi zostać skopiowany do pustego pliku tekstowego z rozszerzeniem .aspx. Aby uzyskać więcej informacji na temat modelu kodu formularzy internetowych, zobacz model kodu strony formularzy internetowych ASP.NET.
<%@ 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>
Uwagi
Kontrolka ListItem reprezentuje pojedynczy element danych w kontrolce listy powiązanej z danymi, na przykład ListBox kontrolki RadioButtonList lub .
Istnieje kilka sposobów określania tekstu wyświetlanego dla elementu w kontrolce listy. Najczęstszą metodą jest umieszczenie tekstu w wewnętrznej zawartości HTML. Wewnętrzna zawartość HTML jest tekstem między znacznikami otwierania i zamykania kontrolki ListItem . Można również użyć Text właściwości , aby określić tekst wyświetlany w kontrolce listy dla elementu.
Właściwość Value umożliwia skojarzenie wartości z elementem w kontrolce listy, oprócz tekstu wyświetlanego w kontrolce. Na przykład możesz wyświetlić tekst elementu w kontrolce listy, na "Item 1"
przykład , i użyć Value właściwości , aby określić wartość dla tego elementu, na przykład "$1.99"
.
Możesz mieć dowolną kombinację wewnętrznej zawartości HTML, Textlub Value zestawu właściwości. Wynikowe dane wyjściowe HTML kontrolki ListItem zależą od kombinacji tych trzech ustawionych właściwości. Jeśli na przykład wszystkie trzy właściwości są ustawione w następujący sposób:
<asp:ListItem Value="Value 1" Text="Item 1">Inner 1</asp:ListItem>
Wewnętrzna zawartość HTML jest używana do renderowania wewnętrznej zawartości HTML, a Value właściwość jest używana dla atrybutu Value
. Wynikowe dane wyjściowe renderowania HTML to:
<option value="Value 1">Inner 1</option>
W poniższej tabeli wymieniono kombinację właściwości zestawu i odpowiednią właściwość używaną dla renderowanej wewnętrznej zawartości Value
i atrybutu HTML. Trzy kolumny na liście po lewej stronie są kombinacją właściwości zestawu. Dwie kolumny na liście po prawej stronie, która wartość właściwości jest używana dla odpowiedniego atrybutu.
Wewnętrzna zawartość HTML | Właściwość tekstu | Value — Właściwość | Renderowana wewnętrzna zawartość HTML | Atrybut Rendered Value |
---|---|---|---|---|
Set | Set | Set | Wewnętrzna zawartość HTML | Value — Właściwość |
Set | Set | Nie ustawiono | Wewnętrzna zawartość HTML | Wewnętrzna zawartość HTML |
Set | Nie ustawiono | Set | Wewnętrzna zawartość HTML | Value — Właściwość |
Set | Nie ustawiono | Nie ustawiono | Wewnętrzna zawartość HTML | Wewnętrzny tekst HTML |
Nie ustawiono | Set | Set | Właściwość tekstu | Value — Właściwość |
Nie ustawiono | Set | Nie ustawiono | Właściwość tekstu | Właściwość tekstu |
Nie ustawiono | Nie ustawiono | Set | Value — Właściwość | Value — Właściwość |
Nie ustawiono | Nie ustawiono | Nie ustawiono | Nie ustawiono | Nie ustawiono |
Uwaga
Text Ponieważ właściwości i Value mają wartość domyślną pustego ciągu, można mieć puste elementy listy w kontrolce listy.
Po wyświetleniu kontrolki listy każda ListItem kontrolka z jej Selected właściwością true
zostanie wyróżniona w kontrolce.
Kontrolka ListItem udostępnia Enabled właściwość umożliwiającą określenie, czy kontrolka ListItem jest włączona, czy wyłączona. Kontrolka ListItem wyłączona jest wygaszona, aby wskazać, że nie można jej wybrać. Użyj tej właściwości, aby wyłączyć kontrolkę ListItem w kontrolce RadioButtonList lub kontrolce CheckBoxList .
Uwaga
Nie można użyć tej właściwości, aby wyłączyć kontrolkę ListItem w kontrolce lub ListBox kontrolceDropDownList.
Aby uzyskać listę początkowych wartości właściwości dla wystąpienia programu ListItem, zobacz ListItem konstruktor.
Przestroga
Ta kontrolka może służyć do wyświetlania danych wejściowych użytkownika, które mogą obejmować złośliwy skrypt klienta. Sprawdź wszelkie informacje wysyłane z klienta do skryptu wykonywalnego, instrukcji SQL lub innego kodu przed wyświetleniem go w aplikacji. Kontrolki weryfikacji umożliwiają zweryfikowanie danych wejściowych użytkownika przed wyświetleniem tekstu wejściowego w kontrolce. ASP.NET udostępnia funkcję weryfikacji żądań wejściowych w celu blokowania skryptu i kodu HTML w danych wejściowych użytkownika. Aby uzyskać więcej informacji, zobacz Zabezpieczanie standardowych kontrolek, Jak chronić przed programami wykorzystującymi skrypty w aplikacji internetowej, stosując kodowanie HTML do ciągów i weryfikowaniedanych wejściowych użytkownika na stronach internetowych ASP.NET.
Konstruktory
ListItem() |
Inicjuje nowe wystąpienie klasy ListItem. |
ListItem(String) |
Inicjuje ListItem nowe wystąpienie klasy z określonymi danymi tekstowymi. |
ListItem(String, String) |
Inicjuje ListItem nowe wystąpienie klasy z określonymi danymi tekstowymi i wartościowymi. |
ListItem(String, String, Boolean) |
Inicjuje ListItem nowe wystąpienie klasy z określonym tekstem, wartością i włączonymi danymi. |
Właściwości
Attributes |
Pobiera kolekcję par nazw atrybutów i wartości dla ListItem klasy, które nie są bezpośrednio obsługiwane przez klasę. |
Enabled |
Pobiera lub ustawia wartość wskazującą, czy element listy jest włączony. |
Selected |
Pobiera lub ustawia wartość wskazującą, czy element jest zaznaczony. |
Text |
Pobiera lub ustawia tekst wyświetlany w kontrolce listy dla elementu reprezentowanego przez ListItemelement . |
Value |
Pobiera lub ustawia wartość skojarzona z parametrem ListItem. |
Metody
Equals(Object) |
Określa, czy określony obiekt ma tę samą wartość i tekst co bieżący element listy. |
FromString(String) |
Tworzy obiekt ListItem na podstawie określonego tekstu. |
GetHashCode() |
Służy jako funkcja skrótu dla określonego typu i jest odpowiednia do użycia w algorytmach tworzenia skrótów i strukturach danych, takich jak tabela skrótów. |
GetType() |
Type Pobiera bieżące wystąpienie. (Odziedziczone po Object) |
MemberwiseClone() |
Tworzy płytkią kopię bieżącego Objectelementu . (Odziedziczone po Object) |
ToString() |
Zwraca ciąg reprezentujący bieżący obiekt. |
Jawne implementacje interfejsu
IAttributeAccessor.GetAttribute(String) |
Zwraca wartość atrybutu kontrolki elementu listy o określonej nazwie atrybutu. |
IAttributeAccessor.SetAttribute(String, String) |
Ustawia atrybut kontrolki elementu listy o określonej nazwie i wartości. |
IParserAccessor.AddParsedSubObject(Object) |
Text Umożliwia utrwalone właściwości jako zawartość wewnętrzną. |
IStateManager.IsTrackingViewState |
Aby uzyskać opis tego elementu członkowskiego, zobacz IsTrackingViewState. |
IStateManager.LoadViewState(Object) |
Aby uzyskać opis tego elementu członkowskiego, zobacz LoadViewState(Object). |
IStateManager.SaveViewState() |
Aby uzyskać opis tego elementu członkowskiego, zobacz SaveViewState(). |
IStateManager.TrackViewState() |
Aby uzyskać opis tego elementu członkowskiego, zobacz TrackViewState(). |
Dotyczy
Zobacz też
- ListControl
- RadioButtonList
- ListBox
- DropDownList
- CheckBoxList
- ListBox Web Server Control Overview
- RadioButton i RadioButtonList Web Server Controls — omówienie
- BulletedList Web Server Control Overview
- Lista rozwijanaList kontrolki serwera sieci Web — omówienie
- Zabezpieczanie standardowych kontrolek
- Instrukcje: ochrona przed programami wykorzystującymi luki w zabezpieczeniach skryptów w aplikacji internetowej przez zastosowanie kodowania HTML do ciągów
- Wprowadzenie do sprawdzania poprawności danych wejściowych użytkownika w ASP.NET stronach sieci Web