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-содержимого Textили Value набора свойств. Результат выходных данных 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-содержимое | Атрибут "Отрисованное значение" |
|---|---|---|---|---|
| Установить | Установить | Установить | Внутреннее 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, String, Boolean) |
Инициализирует новый экземпляр ListItem класса с указанным текстом, значением и включенными данными. |
| ListItem(String, String) |
Инициализирует новый экземпляр ListItem класса с указанными данными текста и значения. |
| ListItem(String) |
Инициализирует новый экземпляр 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(). |
Применяется к
См. также раздел
- ListControl
- RadioButtonList
- ListBox
- DropDownList
- CheckBoxList
- Обзор элемента управления Web Server ListBox
- Обзор элементов управления web Server RadioButton и RadioButtonList
- Обзор элемента управления web Server BulletedList
- Обзор элемента управления веб-сервера DropDownList
- Защита стандартных элементов управления
- Практическое руководство. Защита от эксплойтов скриптов в веб-приложении путем применения кодировки HTML к строкам
- Общие сведения о проверке входных данных пользователей на веб-страницах ASP.NET