Sdílet prostřednictvím


ListItem Třída

Definice

Představuje položku dat v ovládacím prvku seznamu vázaného na data. Tato třída se nemůže dědit.

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
Dědičnost
ListItem
Atributy
Implementuje

Příklady

Následující příklad ukazuje použití ovládacích ListItem prvků v rámci ListBox ovládacího prvku.

Poznámka

Následující ukázky kódu používají model kódu s jedním souborem a nemusí správně fungovat, pokud jsou zkopírovány přímo do souboru kódu na pozadí. Každý vzorek kódu musí být zkopírován do prázdného textového souboru s příponou .aspx. Další informace o modelu kódu webových formulářů najdete v tématu ASP.NET model kódu stránky webových formulářů.

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

Poznámky

Ovládací ListItem prvek představuje jednotlivou datovou položku v rámci ovládacího prvku seznamu vázaného RadioButtonList na data, například nebo ListBox ovládacího prvku.

Existuje několik způsobů, jak zadat text zobrazený pro položku v ovládacím prvku seznamu. Nejběžnější metodou je umístění textu do vnitřního obsahu HTML. Vnitřní obsah HTML je text mezi otevírací a uzavírací značkou ListItem ovládacího prvku. Vlastnost můžete také použít Text k určení textu zobrazeného v ovládacím prvku seznamu pro položku.

Vlastnost Value umožňuje kromě textu zobrazeného v ovládacím prvku přidružit hodnotu k položce v ovládacím prvku seznam. Můžete například zobrazit text pro položku v ovládacím prvku seznam, například "Item 1", a použít Value vlastnost k zadání hodnoty pro tuto položku, například "$1.99".

Můžete mít nastavenou libovolnou kombinaci vnitřního obsahu HTML, Textnebo Value vlastností. Výsledný výstup HTML pro ListItem ovládací prvek závisí na kombinaci těchto tří vlastností, které jsou nastaveny. Například pokud jsou všechny tři vlastnosti nastaveny takto:

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

Vnitřní obsah HTML se používá pro vykreslení vnitřního obsahu HTML a Value vlastnost se používá pro Value atribut . Výsledný výstup vykreslování HTML je následující:

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

Následující tabulka uvádí kombinaci vlastností sady a odpovídající vlastnosti použité pro vykreslený vnitřní html obsah a Value atribut. Tři sloupce vlevo uvádějí kombinaci nastavených vlastností. Dva sloupce na pravé straně seznamu, která hodnota vlastnosti se používá pro odpovídající atribut.

Vnitřní obsah HTML Text – vlastnost Value – vlastnost Vykreslený vnitřní obsah HTML Atribut Vykreslená hodnota
Set Set Set Vnitřní obsah HTML Value – vlastnost
Set Set Nenastaveno Vnitřní obsah HTML Vnitřní obsah HTML
Set Nenastaveno Set Vnitřní obsah HTML Value – vlastnost
Set Nenastaveno Nenastaveno Vnitřní obsah HTML Vnitřní text HTML
Nenastaveno Set Set Text – vlastnost Value – vlastnost
Nenastaveno Set Nenastaveno Text – vlastnost Text – vlastnost
Nenastaveno Nenastaveno Set Value – vlastnost Value – vlastnost
Nenastaveno Nenastaveno Nenastaveno Nenastaveno Nenastaveno

Poznámka

Text Vzhledem k tomu, že vlastnosti a Value mají výchozí hodnotu prázdného řetězce, je možné mít prázdné položky seznamu v ovládacím prvku seznam.

Když se zobrazí ovládací prvek seznamu, zobrazí se v ovládacím prvku zvýrazněný jakýkoli ListItem ovládací prvek s jeho Selected vlastností nastavenou na true .

Ovládací ListItem prvek poskytuje Enabled vlastnost, která umožňuje určit, jestli ListItem je ovládací prvek povolený nebo zakázaný. Ovládací ListItem prvek, který je zakázán, je neaktivní, což znamená, že ho nelze vybrat. Tato vlastnost slouží k zakázání ListItem ovládacího prvku v ovládacím RadioButtonList prvku nebo ovládacím CheckBoxList prvku.

Poznámka

Tuto vlastnost nelze použít k zakázání ListItem ovládacího prvku v ovládacím prvku nebo ListBox ovládacím DropDownList prvku.

Seznam počátečních hodnot vlastností pro instanci ListItemnaleznete v konstruktoru ListItem .

Upozornění

Tento ovládací prvek lze použít k zobrazení vstupu uživatele, který může obsahovat škodlivý klientský skript. Před zobrazením v aplikaci zkontrolujte všechny informace odesílané z klienta spustitelný skript, příkazy SQL nebo jiný kód. Ověřovací ovládací prvky můžete použít k ověření vstupu uživatele před zobrazením vstupního textu v ovládacím prvku. ASP.NET poskytuje funkci ověřování vstupních požadavků, která blokuje skript a html v uživatelském vstupu. Další informace najdete v tématech Zabezpečení standardních ovládacích prvků, Postupy: Ochrana před zneužitím skriptů ve webové aplikaci použitím kódování HTML na řetězce a Ověřování vstupu uživatele na ASP.NET webových stránkách.

Konstruktory

ListItem()

Inicializuje novou instanci ListItem třídy .

ListItem(String)

Inicializuje novou instanci ListItem třídy se zadanými textovými daty.

ListItem(String, String)

Inicializuje novou instanci ListItem třídy se zadaným textem a údaji hodnoty.

ListItem(String, String, Boolean)

Inicializuje novou instanci ListItem třídy se zadaným textem, hodnotou a povolenými daty.

Vlastnosti

Attributes

Získá kolekci dvojic název atributu a hodnota pro ListItem , které nejsou přímo podporovány třídy.

Enabled

Získá nebo nastaví hodnotu označující, zda je položka seznamu povolena.

Selected

Získá nebo nastaví hodnotu označující, zda je položka vybrána.

Text

Získá nebo nastaví text zobrazený v ovládacím prvku seznamu pro položku reprezentovanou objektem ListItem.

Value

Získá nebo nastaví hodnotu přidruženou k objektu ListItem.

Metody

Equals(Object)

Určuje, zda má zadaný objekt stejnou hodnotu a text jako aktuální položka seznamu.

FromString(String)

ListItem Vytvoří ze zadaného textu .

GetHashCode()

Slouží jako hashovací funkce pro konkrétní typ a je vhodná pro použití v algoritmech hash a datových strukturách, jako je například zatřiďovací tabulka.

GetType()

Type Získá z aktuální instance.

(Zděděno od Object)
MemberwiseClone()

Vytvoří mělkou kopii aktuálního Objectsouboru .

(Zděděno od Object)
ToString()

Vrátí řetězec, který představuje aktuální objekt.

Explicitní implementace rozhraní

IAttributeAccessor.GetAttribute(String)

Vrátí hodnotu atributu ovládacího prvku položky seznamu, který má zadaný název atributu.

IAttributeAccessor.SetAttribute(String, String)

Nastaví atribut ovládacího prvku položky seznamu se zadaným názvem a hodnotou.

IParserAccessor.AddParsedSubObject(Object)

Umožňuje zachovat Text vlastnost jako vnitřní obsah.

IStateManager.IsTrackingViewState

Popis tohoto člena najdete v tématu IsTrackingViewState.

IStateManager.LoadViewState(Object)

Popis tohoto člena najdete v tématu LoadViewState(Object).

IStateManager.SaveViewState()

Popis tohoto člena najdete v tématu SaveViewState().

IStateManager.TrackViewState()

Popis tohoto člena najdete v tématu TrackViewState().

Platí pro

Viz také