Udostępnij za pośrednictwem


ListItem Klasa

Definicja

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ż