ListItemCollection Třída
Definice
Důležité
Některé informace platí pro předběžně vydaný produkt, který se může zásadně změnit, než ho výrobce nebo autor vydá. Microsoft neposkytuje žádné záruky, výslovné ani předpokládané, týkající se zde uváděných informací.
Kolekce ListItem objektů v ovládacím prvku seznamu. Tuto třídu nelze dědit.
public ref class ListItemCollection sealed : System::Collections::IList, System::Web::UI::IStateManager
public sealed class ListItemCollection : System.Collections.IList, System.Web.UI.IStateManager
type ListItemCollection = class
interface IList
interface ICollection
interface IEnumerable
interface IStateManager
type ListItemCollection = class
interface ICollection
interface IEnumerable
interface IList
interface IStateManager
Public NotInheritable Class ListItemCollection
Implements IList, IStateManager
- Dědičnost
-
ListItemCollection
- Implementuje
Příklady
Následující příklad kódu ukazuje vytváření ListItemCollection objektů, přidávání položek do kolekcí a odebírání položek z kolekcí. V příkladu se název listBoxData
používá jako zdroj dat pro ListBox ovládací prvek s názvem ListBox1
a ListItemCollection volá ddBoxData
se jako zdroj dat pro DropDownList ovládací prvek s názvem DropDownList1
.ListItemCollection
<%@ 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 runat="server">
private void Page_Load(object sender, System.EventArgs e)
{
// If this isn't the first time the page is loaded in this session,
// then don't recreate the DataTables.
if (!IsPostBack)
{
// <Snippet5>
// Create a new ListItemCollection.
ListItemCollection listBoxData = new ListItemCollection();
// Add items to the collection.
listBoxData.Add(new ListItem("apples"));
listBoxData.Add(new ListItem("bananas"));
listBoxData.Add(new ListItem("cherries"));
listBoxData.Add("grapes");
listBoxData.Add("mangos");
listBoxData.Add("oranges");
// Set the ListItemCollection as the data source for ListBox1.
ListBox1.DataSource = listBoxData;
ListBox1.DataBind();
//</Snippet5>
// Create a new ListItemCollection.
ListItemCollection ddBoxData = new ListItemCollection();
// For now, just bind the data to the DropDownList.
DropDownList1.DataSource = ddBoxData;
DropDownList1.DataBind();
}
}
private void moveButton1_Click(object sender, System.EventArgs e)
{
//<Snippet6>
//Set the SelectedIndex to -1 so no items are selected.
// The new item will be set as the selected item when it is added.
DropDownList1.SelectedIndex = -1;
// Add the selected item to DropDownList1.
DropDownList1.Items.Add(ListBox1.SelectedItem);
// Delete the selected item from ListBox1.
ListBox1.Items.Remove(ListBox1.SelectedItem);
//</Snippet6>
}
private void moveButton2_Click(object sender, System.EventArgs e)
{
//Set the SelectedIndex to -1 so no items are selected.
// The new item will be set as the selected item when it is added.
ListBox1.SelectedIndex = -1;
// Add the selected item to ListBox1.
ListBox1.Items.Add(DropDownList1.SelectedItem);
//Delete the selected item from DropDownList1.
DropDownList1.Items.Remove(DropDownList1.SelectedItem);
}
</script>
<html xmlns="http://www.w3.org/1999/xhtml" >
<head>
<title>ASP.NET Example</title>
</head>
<body>
<form id="form1" runat="server">
<table cellpadding="6" border="0">
<tr>
<td rowspan="2" valign="top">
<asp:ListBox id="ListBox1" runat="server"
SelectionMode="Single" Width="100px">
</asp:ListBox>
</td>
<td>
<asp:Button id="moveButton1" runat="server" Text="Move -->"
Width="100px" OnClick="moveButton1_Click"></asp:Button>
</td>
<td rowspan="2" valign="top">
<asp:DropDownList Runat="server" ID="DropDownList1"
Width="100px">
</asp:DropDownList>
</td>
</tr>
<tr>
<td>
<asp:Button ID="moveButton2" Runat="server" Text="<-- Move"
Width="100px" onClick="moveButton2_Click"></asp:Button>
</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">
Private Sub Page_Load(sender As Object, e As System.EventArgs) Handles MyBase.Load
' If this isn't the first time the page is loaded in this session,
' then don't recreate the DataTables.
If Not IsPostBack Then
' <Snippet5>
' Create a new ListItemCollection.
Dim listBoxData As New ListItemCollection()
' Add items to the collection.
listBoxData.Add(New ListItem("apples"))
listBoxData.Add(New ListItem("bananas"))
listBoxData.Add(New ListItem("cherries"))
listBoxData.Add("grapes")
listBoxData.Add("mangos")
listBoxData.Add("oranges")
' Set the ListItemCollection as the data source for ListBox1.
ListBox1.DataSource = listBoxData
ListBox1.DataBind()
' </Snippet5>
' Create a new ListItemCollection.
Dim ddBoxData As New ListItemCollection()
' For now, just bind the data to the DropDownList.
DropDownList1.DataSource = ddBoxData
DropDownList1.DataBind()
End If
End Sub 'Page_Load
Private Sub moveButton1_Click(sender As Object, e As System.EventArgs)
'Set the SelectedIndex to -1 so no items are selected.
' The new item will be set as the selected item when it is added.
DropDownList1.SelectedIndex = - 1
' <Snippet6>
' Add the selected item to DropDownList1.
DropDownList1.Items.Add(ListBox1.SelectedItem)
' Delete the selected item from ListBox1.
ListBox1.Items.Remove(ListBox1.SelectedItem)
' </Snippet6>
End Sub 'moveButton1_Click
Private Sub moveButton2_Click(sender As Object, e As System.EventArgs)
'Set the SelectedIndex to -1 so no items are selected.
' The new item will be set as the selected item when it is added.
ListBox1.SelectedIndex = - 1
' Add the selected item to ListBox1.
ListBox1.Items.Add(DropDownList1.SelectedItem)
'Delete the selected item from DropDownList1.
DropDownList1.Items.Remove(DropDownList1.SelectedItem)
End Sub 'moveButton2_Click
</script>
<html xmlns="http://www.w3.org/1999/xhtml" >
<head>
<title>ASP.NET Example</title>
</head>
<body>
<form id="form1" runat="server">
<table cellpadding="6" border="0">
<tr>
<td rowspan="2" valign="top">
<asp:ListBox id="ListBox1" runat="server"
SelectionMode="Single" Width="100px">
</asp:ListBox>
</td>
<td>
<asp:Button id="moveButton1" runat="server" Text="Move -->"
Width="100px" OnClick="moveButton1_Click"></asp:Button>
</td>
<td rowspan="2" valign="top">
<asp:DropDownList Runat="server" ID="DropDownList1"
Width="100px">
</asp:DropDownList>
</td>
</tr>
<tr>
<td>
<asp:Button ID="moveButton2" Runat="server" Text="<-- Move"
Width="100px" onClick="moveButton2_Click"></asp:Button>
</td>
</tr>
</table>
</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
Třída ListItemCollection představuje kolekci ListItem objektů. Objekty ListItem pak představují položky zobrazené v ovládacích prvcích seznamu, například .ListBox K programovému načtení ListItem objektů z ovládacího prvku seznamu použijte jednu z následujících metod:
Pomocí indexeru získejte jeden ListItem z kolekce pomocí zápisu pole.
CopyTo Pomocí metody zkopírujte obsah kolekce do objektuSystem.Array, který lze použít k získání položek z kolekce.
Použijte metodu GetEnumerator k vytvoření implementovaného objektu System.Collections.IEnumerator , který lze použít k získání položek z kolekce.
K iteraci kolekce použijte
foreach
(C#) neboFor Each
(Visual Basic).
Vlastnost Count určuje celkový počet položek v kolekci a běžně se používá k určení horní hranice kolekce. Položky z kolekce můžete přidávat a odebírat pomocí Add metod a Remove metod.
Konstruktory
ListItemCollection() |
Inicializuje novou instanci ListItemCollection třídy. |
Vlastnosti
Capacity |
Získá nebo nastaví maximální počet položek, které ListItemCollection může uložit. |
Count |
Získá počet ListItem objektů v kolekci. |
IsReadOnly |
Získá hodnotu, která určuje, zda je ListItemCollection určena jen pro čtení. |
IsSynchronized |
Získá hodnotu označující, jestli je přístup k požadavkům ListItemCollection synchronizovaný (thread-safe). |
Item[Int32] |
Získá v ListItem zadaném indexu v kolekci. |
SyncRoot |
Získá objekt, který lze použít k synchronizaci přístupu k ListItemCollection. |
Metody
Add(ListItem) |
Připojí zadaný ListItem na konec kolekce. |
Add(String) |
ListItem Připojí na konec kolekce, která představuje zadaný řetězec. |
AddRange(ListItem[]) |
Přidá položky v poli ListItem objektů do kolekce. |
Clear() |
Odebere všechny ListItem objekty z kolekce. |
Contains(ListItem) |
Určuje, zda kolekce obsahuje zadanou položku. |
CopyTo(Array, Int32) |
Zkopíruje položky ze ListItemCollection zadaného Arrayindexu počínaje zadaným indexem. |
Equals(Object) |
Určí, zda se zadaný objekt rovná aktuálnímu objektu. (Zděděno od Object) |
FindByText(String) |
Vyhledá kolekci ListItem s Text vlastností, která se rovná zadanému textu. |
FindByValue(String) |
Vyhledá kolekci ListItem s vlastností, která obsahuje zadanou Value hodnotu. |
GetEnumerator() |
IEnumerator Vrátí implementovaný objekt, který obsahuje všechny ListItem objekty v objektu ListItemCollection. |
GetHashCode() |
Slouží jako výchozí funkce hash. (Zděděno od Object) |
GetType() |
Type Získá aktuální instanci. (Zděděno od Object) |
IndexOf(ListItem) |
Určuje hodnotu indexu, která představuje pozici zadané ListItem v kolekci. |
Insert(Int32, ListItem) |
Vloží zadané ListItem v kolekci do zadaného umístění indexu. |
Insert(Int32, String) |
ListItem Vloží řetězec, který představuje zadaný řetězec v kolekci v zadaném umístění indexu. |
MemberwiseClone() |
Vytvoří použádnou kopii aktuálního souboru Object. (Zděděno od Object) |
Remove(ListItem) |
Odebere zadanou ListItem z kolekce. |
Remove(String) |
Odebere ListItem z kolekce tu, která je reprezentovaná zadaným řetězcem. |
RemoveAt(Int32) |
Odebere zadaný ListItem index z kolekce. |
ToString() |
Vrátí řetězec, který představuje aktuální objekt. (Zděděno od Object) |
Explicitní implementace rozhraní
IList.Add(Object) |
Popis tohoto člena najdete v tématu Add(Object). |
IList.Contains(Object) |
Popis tohoto člena najdete v tématu Contains(Object). |
IList.IndexOf(Object) |
Popis tohoto člena najdete v tématu IndexOf(Object). |
IList.Insert(Int32, Object) |
Popis tohoto člena najdete v tématu Insert(Int32, Object). |
IList.IsFixedSize |
Popis tohoto člena najdete v tématu IsFixedSize. |
IList.Item[Int32] |
Popis tohoto člena najdete v tématu Item[Int32]. |
IList.Remove(Object) |
Popis tohoto člena najdete v tématu Remove(Object). |
IStateManager.IsTrackingViewState |
Popis tohoto člena najdete v tématu IsTrackingViewState. |
IStateManager.LoadViewState(Object) |
Načte dříve uložený stav. |
IStateManager.SaveViewState() |
Vrátí objekt obsahující změny stavu. |
IStateManager.TrackViewState() |
Spustí sledování stavu změn. |
Metody rozšíření
Cast<TResult>(IEnumerable) |
Přetypuje prvky zadaného IEnumerable typu. |
OfType<TResult>(IEnumerable) |
Filtruje prvky IEnumerable založené na zadaném typu. |
AsParallel(IEnumerable) |
Umožňuje paralelizaci dotazu. |
AsQueryable(IEnumerable) |
Převede na IEnumerable IQueryable. |