Поделиться через


ListItem Класс

Определение

Представляет элемент данных в элементе управления списком с привязкой к данным. Этот класс не наследуется.

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
Наследование
ListItem
Атрибуты
Реализации

Примеры

В следующем примере показано использование ListItem элементов управления в элементе ListBox управления .

Примечание

В следующих примерах кода используется однофайловая модель кода, и при копировании непосредственно в файл кода программной части может работать неправильно. Каждый пример кода необходимо скопировать в пустой текстовый файл с расширением .aspx. Дополнительные сведения о модели кода веб-форм см. в разделе модель кода веб-форм 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>

Комментарии

Элемент ListItem управления представляет отдельный элемент данных в элементе управления списком с привязкой к данным, например элементе ListBox управления или RadioButtonList .

Существует несколько способов указать текст, отображаемый для элемента управления "Список". Наиболее распространенным способом является размещение текста во внутреннем html-содержимом. Внутреннее html-содержимое — это текст между открывающим и закрывающим тегами ListItem элемента управления. Вы также можете использовать свойство , Text чтобы указать текст, отображаемый в элементе управления "Список" для элемента управления .

Свойство Value позволяет связать значение с элементом в элементе управления "Список" в дополнение к тексту, отображаемого в элементе управления . Например, можно отобразить текст элемента в элементе управления списком, например "Item 1", и использовать Value свойство , чтобы указать значение для этого элемента, например "$1.99".

Можно задать любое сочетание внутреннего HTML-содержимого или TextValue свойств . Выходные данные HTML для ListItem элемента управления зависят от сочетания этих трех заданных свойств. Например, если все три свойства заданы следующим образом:

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

Внутреннее HTML-содержимое используется для отрисованного внутреннего HTML-содержимого Value , а свойство используется для атрибута Value . Итоговый результат отрисовки HTML::

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

В следующей таблице приведено сочетание свойств набора и соответствующего свойства, используемого для отображаемого внутреннего HTML-содержимого и Value атрибута. В трех столбцах слева отображается сочетание свойств набора. Два столбца в списке справа, значение свойства которых используется для соответствующего атрибута.

Внутреннее содержимое HTML Text - свойство Value - свойство Отрисованное внутреннее содержимое HTML Атрибут rendered Value
Присвойте параметру Присвойте параметру Присвойте параметру Внутреннее содержимое HTML Value - свойство
Присвойте параметру Присвойте параметру Не задано Внутреннее содержимое HTML Внутреннее содержимое HTML
Присвойте параметру Не задано Присвойте параметру Внутреннее содержимое HTML Value - свойство
Присвойте параметру Не задано Не задано Внутреннее содержимое HTML Внутренний текст HTML
Не задано Присвойте параметру Присвойте параметру Text - свойство Value - свойство
Не задано Присвойте параметру Не задано Text - свойство Text - свойство
Не задано Не задано Присвойте параметру Value - свойство Value - свойство
Не задано Не задано Не задано Не задано Не задано

Примечание

Text Так как свойства и Value имеют значение по умолчанию пустой строки, в элементе управления "Список" можно использовать пустые элементы списка.

При отображении элемента управления списком в элементе управления выделяется любой ListItem элемент управления со свойством Selected , для свойства , который имеет true значение .

Элемент ListItem управления предоставляет Enabled свойство , позволяющее указать, включен или ListItem отключен элемент управления. Отключенный ListItem элемент управления неактивен, чтобы указать, что его нельзя выбрать. Используйте это свойство, чтобы отключить ListItem элемент управления в элементе RadioButtonList управления или элементе CheckBoxList управления .

Примечание

Это свойство нельзя использовать для отключения ListItem элемента управления в элементе управления или ListBox элементе DropDownList управления .

Список начальных значений свойств для экземпляра ListItemсм. в конструкторе ListItem .

Внимание!

Этот элемент управления можно использовать для отображения введенных пользователем данных, которые могут включать вредоносный клиентский скрипт. Перед отображением в приложении проверьте все сведения, отправляемые клиентом для исполняемого скрипта, инструкций SQL или другого кода. Элементы управления проверки можно использовать для проверки введенных пользователем данных перед отображением входного текста в элементе управления. ASP.NET предоставляет функцию проверки входных запросов для блокировки скрипта и HTML в вводе пользователем. Дополнительные сведения см. в разделах Защита стандартных элементов управления, Практическое руководство. Защита от эксплойтов скриптов в веб-приложении путем применения кодировки HTML к строкам и Проверка входных данных пользователя на веб-страницах ASP.NET.

Конструкторы

ListItem()

Инициализирует новый экземпляр класса ListItem.

ListItem(String)

Инициализирует новый экземпляр класса ListItem с указанными текстовыми данными.

ListItem(String, String)

Инициализирует новый экземпляр класса ListItem указанными значениями и текстовыми данными.

ListItem(String, String, Boolean)

Инициализирует новый экземпляр класса ListItem указанными значениями и текстовыми и включенными данными.

Свойства

Attributes

Получает коллекцию пар "имя-значение" атрибута для объекта ListItem, которые напрямую не поддерживаются классом.

Enabled

Получает или задает значение, указывающее, включен ли элемент списка.

Selected

Получает или задает значение, указывающее, выбран ли данный элемент.

Text

Получает или задает текст, отображаемый в элементе управления "Список" для элемента, представленного элементом управления ListItem.

Value

Получает или задает значение, связанное с ListItem.

Методы

Equals(Object)

Определяет, имеет ли заданный объект те же значение и текст, что и текущий элемент списка.

FromString(String)

Создает элемент ListItem на основе указанного текста.

GetHashCode()

Служит в качестве хэш-функции для конкретного типа и может использоваться в алгоритмах хэширования и структурах данных, подобных хэш-таблице.

GetType()

Возвращает объект Type для текущего экземпляра.

(Унаследовано от Object)
MemberwiseClone()

Создает неполную копию текущего объекта Object.

(Унаследовано от Object)
ToString()

Возвращает строку, представляющую текущий объект.

Явные реализации интерфейса

IAttributeAccessor.GetAttribute(String)

Возвращает значение атрибута элемента управления элементами списка, для которого задано указанное имя атрибута.

IAttributeAccessor.SetAttribute(String, String)

Присваивает атрибуту элемента управления элементами списка указанное имя и значение.

IParserAccessor.AddParsedSubObject(Object)

Позволяет хранить свойство Text как внутреннее содержимое.

IStateManager.IsTrackingViewState

Описание этого члена см. в разделе IsTrackingViewState.

IStateManager.LoadViewState(Object)

Описание этого члена см. в разделе LoadViewState(Object).

IStateManager.SaveViewState()

Описание этого члена см. в разделе SaveViewState().

IStateManager.TrackViewState()

Описание этого члена см. в разделе TrackViewState().

Применяется к

См. также раздел