.NET Framework Class Library ListItemCollection Class A collection of ListItem objects in a list control. This class cannot be inherited.

Inheritance Hierarchy
Namespace:
System.Web.UI.WebControls
Assembly:
System.Web (in System.Web.dll)

Syntax
Public NotInheritable Class ListItemCollection _
Implements IList, ICollection, IEnumerable, IStateManager
public sealed class ListItemCollection : IList,
ICollection, IEnumerable, IStateManager
public ref class ListItemCollection sealed : IList,
ICollection, IEnumerable, IStateManager
[<Sealed>]
type ListItemCollection =
class
interface IList
interface ICollection
interface IEnumerable
interface IStateManager
end
The ListItemCollection type exposes the following members.

Constructors

Methods

Extension Methods

Explicit Interface Implementations

Remarks
The ListItemCollection class represents a collection of ListItem objects. The ListItem objects, in turn, represent the items displayed in list controls, such as the ListBox. To programmatically retrieve ListItem objects from a list control, use one of following methods: Use the indexer to get a single ListItem from the collection, using array notation. Use the CopyTo method to copy the contents of the collection to a System..::.Array object, which can then be used to get items from the collection. Use the GetEnumerator method to create a System.Collections..::.IEnumerator implemented object, which can then be used to get items from the collection. Use foreach (C#) or For Each (Visual Basic) to iterate through the collection.
The Count property specifies the total number of items in the collection, and is commonly used to determine the upper bound of the collection. You can add and remove items from the collection by using the Add and Remove methods.

Examples
The following code example demonstrates creating ListItemCollection objects, adding items to the collections, and removing items from the collections. In the example, the ListItemCollection named listBoxData is used as the data source for a ListBox control called ListBox1, and the ListItemCollection called ddBoxData is used as the data source for a DropDownList control called DropDownList1.
<%@ 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
' 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()
' 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
' Add the selected item to DropDownList1.
DropDownList1.Items.Add(ListBox1.SelectedItem)
' Delete the selected item from ListBox1.
ListBox1.Items.Remove(ListBox1.SelectedItem)
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 >
<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="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)
{
// 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();
// 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)
{
//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);
}
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 >
<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 For Each 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 foreach loop to iterate through
the ListItem objects in the ListItemCollection of ListBox1. -->
<%@ 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)
' Set the number of rows displayed in the ListBox to be
' the number of items in the ListBoxCollection.
ListBox1.Rows = ListBox1.Items.Count
' 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)
' 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)
' Rebind the data to DataGrid1.
dv = new DataView(dt)
DataGrid1.DataSource = dv
DataGrid1.DataBind()
End If
End If
Next item
End Sub
</script>
<html >
<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="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)
{
// Set the number of rows displayed in the ListBox to be
// the number of items in the ListBoxCollection.
ListBox1.Rows = ListBox1.Items.Count;
// 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)
{
// 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);
// Rebind the data to DataGrid1.
dv = new DataView(dt);
DataGrid1.DataSource = dv;
DataGrid1.DataBind();
}
}
}
}
</script>
<html >
<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>

Version Information
.NET FrameworkSupported in: 4, 3.5, 3.0, 2.0, 1.1, 1.0

Platforms
Windows 7, Windows Vista SP1 or later, Windows XP SP3, Windows XP SP2 x64 Edition, Windows Server 2008 (Server Core Role not supported), Windows Server 2008 R2 (Server Core Role not supported), Windows Server 2003 SP2
The .NET Framework does not support all versions of every platform. For a list of the supported versions, see .NET Framework System Requirements.

Thread Safety
Any public static ( Shared in Visual Basic) members of this type are thread safe. Any instance members are not guaranteed to be thread safe.

See Also
|
Bibliothèque de classes .NET Framework ListItemCollection, classe Collection d'objets ListItem dans un contrôle de liste. Cette classe ne peut pas être héritée.

Hiérarchie d'héritage
Espace de noms :
System.Web.UI.WebControls
Assembly :
System.Web (dans System.Web.dll)

Syntaxe
Public NotInheritable Class ListItemCollection _
Implements IList, ICollection, IEnumerable, IStateManager
public sealed class ListItemCollection : IList,
ICollection, IEnumerable, IStateManager
public ref class ListItemCollection sealed : IList,
ICollection, IEnumerable, IStateManager
[<Sealed>]
type ListItemCollection =
class
interface IList
interface ICollection
interface IEnumerable
interface IStateManager
end
Le type ListItemCollection expose les membres suivants.

Constructeurs

Méthodes

Méthodes d'extension

Implémentations d'interface explicite

Notes
La classe ListItemCollection représente une collection d'objets ListItem. Les objets ListItem, à leur tour, représentent les éléments affichés dans les contrôles de liste, tels que ListBox. Pour récupérer par programme des objets ListItem à partir d'un contrôle de liste, utilisez l'une des méthodes suivantes : Utilisez l'indexeur pour obtenir un seul objet ListItem de la collection, en utilisant une notation de tableau. Utilisez la méthode CopyTo pour copier le contenu de la collection vers un objet System..::.Array, qui peut ensuite être utilisé pour obtenir des éléments de la collection. Utilisez la méthode GetEnumerator pour créer un objet implémentant System.Collections..::.IEnumerator, qui peut ensuite être utilisé pour obtenir des éléments de la collection. Utilisez foreach (C#) ou For Each (Visual Basic) pour itérer au sein de la collection.
La propriété Count spécifie le nombre total d'éléments dans la collection et est généralement utilisée pour déterminer la limite supérieure de la collection. Vous pouvez ajouter des éléments dans la collection ou en supprimer à l'aide des méthodes Add et Remove.

Exemples
L'exemple de code suivant illustre la création d'objets ListItemCollection, l'ajout d'éléments aux collections et la suppression d'éléments des collections. Dans l'exemple, le ListItemCollection nommé listBoxData est utilisé comme source de données pour un contrôle ListBox ListBox1 appelé, et le ListItemCollection appelé ddBoxData est utilisé comme source de données pour un contrôle DropDownList DropDownList1 appelé.
<%@ 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
' 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()
' 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
' Add the selected item to DropDownList1.
DropDownList1.Items.Add(ListBox1.SelectedItem)
' Delete the selected item from ListBox1.
ListBox1.Items.Remove(ListBox1.SelectedItem)
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 >
<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="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)
{
// 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();
// 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)
{
//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);
}
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 >
<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 For Each 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 foreach loop to iterate through
the ListItem objects in the ListItemCollection of ListBox1. -->
<%@ 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)
' Set the number of rows displayed in the ListBox to be
' the number of items in the ListBoxCollection.
ListBox1.Rows = ListBox1.Items.Count
' 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)
' 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)
' Rebind the data to DataGrid1.
dv = new DataView(dt)
DataGrid1.DataSource = dv
DataGrid1.DataBind()
End If
End If
Next item
End Sub
</script>
<html >
<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="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)
{
// Set the number of rows displayed in the ListBox to be
// the number of items in the ListBoxCollection.
ListBox1.Rows = ListBox1.Items.Count;
// 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)
{
// 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);
// Rebind the data to DataGrid1.
dv = new DataView(dt);
DataGrid1.DataSource = dv;
DataGrid1.DataBind();
}
}
}
}
</script>
<html >
<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>

Informations de version
.NET FrameworkPris en charge dans : 4, 3.5, 3.0, 2.0, 1.1, 1.0

Plateformes
Windows 7, Windows Vista SP1 ou ultérieur, Windows XP SP3, Windows XP SP2 Édition x64, Windows Server 2008 (installation minimale non prise en charge), Windows Server 2008 R2 (installation minimale prise en charge avec SP1 ou version ultérieure), Windows Server 2003 SP2
Le .NET Framework ne prend pas en charge toutes les versions de chaque plateforme. Pour obtenir la liste des versions prises en charge, consultez Configuration requise du .NET Framework.

Sécurité des threads
Tous les membres static ( Shared en Visual Basic) publics de ce type sont thread-safe. Il n'est pas garanti que les membres d'instance soient thread-safe.

Voir aussi
|