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(). |
Применяется к
См. также раздел
- ListControl
- RadioButtonList
- ListBox
- DropDownList
- CheckBoxList
- Общие сведения о серверных веб-элементах управления ListBox
- Общие сведения о серверных веб-элементах управления RadioButton и RadioButtonList
- Обзор серверного веб-элемента управления BulletedList
- Обзор серверного веб-элемента управления DropDownList
- Защита стандартных элементов управления
- Практическое руководство. Защита от эксплойтов скриптов в веб-приложении путем применения кодировки HTML к строкам
- Общие сведения о проверке введенных пользователем данных на веб-страницах ASP.NET