DataListItemCollection Klas
Definitie
Belangrijk
Bepaalde informatie heeft betrekking op een voorlopige productversie die aanzienlijk kan worden gewijzigd voordat deze wordt uitgebracht. Microsoft biedt geen enkele expliciete of impliciete garanties met betrekking tot de informatie die hier wordt verstrekt.
Vertegenwoordigt de verzameling DataListItem objecten in het DataList besturingselement. Deze klasse kan niet worden overgenomen.
public ref class DataListItemCollection sealed : System::Collections::ICollection
public sealed class DataListItemCollection : System.Collections.ICollection
type DataListItemCollection = class
interface ICollection
interface IEnumerable
Public NotInheritable Class DataListItemCollection
Implements ICollection
- Overname
-
DataListItemCollection
- Implementeringen
Voorbeelden
In het volgende voorbeeld wordt een gegevensbron gemaakt in de vorm van een DataView besturingselement en wordt deze gekoppeld aan een DataList besturingselement dat is gedeclareerd in markeringen. Vervolgens wordt de inhoud van het onderliggende DataListItemCollection object op de pagina weergegeven.
<%@ Import Namespace = "System.Data" %>
<%@ 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">
<script runat="server">
// The following example creates a DataSource as a DataView.
// The DataView is bound to a DataList that is displayed using an
// ItemTemplate. When the page is first loaded, the program uses the
// CopyTo method to copy the entire data source to an Array and then
// displays that data.
ICollection CreateDataSource()
{
DataTable myDataTable = new DataTable();
DataRow myDataRow;
myDataTable.Columns.Add(new DataColumn("EmployeeName", typeof(string)));
myDataTable.Columns.Add(new DataColumn("EmployeeID", typeof(long)));
for (int i = 0; i < 3; i++)
{
myDataRow = myDataTable.NewRow();
myDataRow[0] = "somename" + i.ToString();
myDataRow[1] = (i+1000);
myDataTable.Rows.Add(myDataRow);
}
DataView dataView = new DataView(myDataTable);
return dataView;
}
// <Snippet2>
void Page_Load(Object sender, EventArgs e)
{
if (!IsPostBack)
{
// Bind the DataView to the DataSource.
myDataList.DataSource = CreateDataSource();
myDataList.DataBind();
// Create a Array to hold the DataSource.
System.Array myArray = Array.CreateInstance(typeof(DataListItem),
myDataList.Items.Count);
// Copy the DataSource to an Array.
myDataList.Items.CopyTo(myArray,0);
PrintValues(myArray);
}
}
// Prints each element in the Array onto the label lblAllItems1.
public void PrintValues(Array myArr)
{
DataListItem currentItem;
System.Collections.IEnumerator myEnumerator = myArr.GetEnumerator();
while (myEnumerator.MoveNext())
{
currentItem = (DataListItem)myEnumerator.Current;
lblAllItems1.Text += "<br /><br />" +
((Label)(currentItem.Controls[1])).Text;
}
}
// Event handler method for show button.
void show_Click(Object sender,EventArgs e)
{
// Get the underlying DataListItemCollection from the DataList object.
DataListItemCollection myDataListItemCollection = myDataList.Items;
// Display the read-only properties.
Response.Write("<b>The Total number of items are " +
myDataListItemCollection.Count + "</b>");
Response.Write("<br /><b>The ReadOnly property of the " +
"DataListItemCollection is always" +
myDataListItemCollection.IsReadOnly + "</b>");
Response.Write("<br /><b>The IsSynchronized property of the " +
"DataListItemCollection is always " +
myDataListItemCollection.IsSynchronized + "</b>");
myDataListItemCollection = null;
}
// </Snippet2>
// <Snippet5>
void allItems_Click(Object sender,EventArgs e)
{
IEnumerator dataListEnumerator;
DataListItem currentItem;
lblAllItems.Text = "";
// Get an enumerator to traverse the DataListItemCollection.
dataListEnumerator = myDataList.Items.GetEnumerator();
while(dataListEnumerator.MoveNext())
{
currentItem = (DataListItem)dataListEnumerator.Current;
// Display the current DataListItem onto the label.
lblAllItems.Text += ((Label)(currentItem.Controls[1])).Text + " ";
}
}
// </Snippet5>
// <Snippet6>
void itemSelected(Object sender,EventArgs e)
{
// Get the underlying DataListItemCollection from the DataList object.
DataListItemCollection myDataListItemCollection = myDataList.Items;
// Get the index of the selected radio button in the RadioButtonList.
int index = Convert.ToInt16(listItemNo.SelectedItem.Value);
// Get the DataListItem corresponding to index from DataList.
// SyncRoot is used to make access to the DataListItemCollection
// in a thread-safe manner It returns the object that invoked it.
DataListItem currentItem =
((DataListItemCollection)(myDataListItemCollection.SyncRoot))[index];
// Display the selected DataListItem onto a label.
lblDisplay.Text = "<b>DataListItem" + index + " is : "
+ ((Label)(currentItem.Controls[1])).Text;
currentItem = null;
myDataListItemCollection = null;
}
// </Snippet6>
</script>
<html xmlns="http://www.w3.org/1999/xhtml" >
<head>
<title>
DataListItemCollection Example
</title>
</head>
<body>
<form runat="server" id="Form1">
<h3>
DataListItemCollection Example
</h3>
<table>
<tr>
<td>
<asp:datalist id="myDataList" runat="server" Font-Size="8pt"
Font-Names="Verdana" BorderColor="black" CellSpacing="5"
CellPadding="10" GridLines="Horizontal">
<HeaderStyle BackColor="#aaaadd"></HeaderStyle>
<HeaderTemplate>
EmployeeName EmployeeID
</HeaderTemplate>
<ItemTemplate>
<asp:Label id="label1" runat="server"
Text='<%# DataBinder.Eval(Container.DataItem, "EmployeeName") %>'>
</asp:Label>
<%# DataBinder.Eval(Container.DataItem, "EmployeeID")%>
</ItemTemplate>
</asp:datalist>
</td>
<td>
<asp:label id="lblAllItems1"
Text="The following items <br /> are copied to the array: "
Runat="server" ForeColor="blue" Font-Bold="true"
AssociatedControlID="listItemNo">
The following items <br /> are copied to the array:
</asp:label>
</td>
<td>
<b>Show Items:</b>
<asp:RadioButtonList ID="listItemNo"
OnSelectedIndexChanged="itemSelected" AutoPostBack="true"
Runat="server">
<asp:ListItem Value="0" Text="0"></asp:ListItem>
<asp:ListItem Value="1" Text="1"></asp:ListItem>
<asp:ListItem Value="2" Text="2"></asp:ListItem>
</asp:RadioButtonList>
</td>
<td>
<asp:Label ID="lblDisplay" Runat="server" />
</td>
</tr>
</table>
<p>
<asp:button id="show" onclick="show_Click" Runat="server"
Font-Bold="True" Text="DataList Information" />
<asp:button id="allitems" onclick="allItems_Click" Runat="server"
Font-Bold="True" Text="Show All DataListItems" />
</p>
<p>
<b>All DataList items will be shown here:</b>
<asp:label id="lblAllItems" Runat="server" ForeColor="blue" />
</p>
</form>
</body>
</html>
<%@ Import Namespace = "System.Data" %>
<%@ 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">
<script runat="server">
' The following example creates a DataSource as a DataView.
' The DataView is bound to a DataList that is displayed using an
' ItemTemplate. When the page is first loaded, the program uses the
' CopyTo method to copy the entire data source to an Array and then
' displays that data.
Function CreateDataSource() As ICollection
Dim myDataTable As DataTable = New DataTable()
Dim myDataRow As DataRow
Dim i As Integer
myDataTable.Columns.Add(New DataColumn("EmployeeName", GetType(String)))
myDataTable.Columns.Add(New DataColumn("EmployeeID", GetType(Integer)))
For i = 0 To 2
myDataRow = myDataTable.NewRow()
myDataRow(0) = "somename" + i.ToString()
myDataRow(1) = i + 1000
myDataTable.Rows.Add(myDataRow)
Next
CreateDataSource = new DataView(myDataTable)
End Function
' <Snippet2>
Sub Page_Load(sender As object, e As EventArgs)
If (Not IsPostBack)
' Bind the DataView to the DataSource.
myDataList.DataSource = CreateDataSource()
myDataList.DataBind()
' Create a Array to hold the DataSource.
Dim myArray As System.Array = Array.CreateInstance(GetType(DataListItem), _
myDataList.Items.Count)
' Copy the DataSource to an Array.
myDataList.Items.CopyTo(myArray, 0)
PrintValues(myArray)
End If
End sub
' Prints each element in the Array onto the label lblAllItems1.
Public Sub PrintValues(myArr As Array)
Dim currentItem As DataListItem
Dim myEnumerator As System.Collections.IEnumerator = myArr.GetEnumerator()
While (myEnumerator.MoveNext())
currentItem = CType(myEnumerator.Current,DataListItem)
lblAllItems1.Text = lblAllItems1.Text & "<br /><br />" & _
CType(currentItem.Controls(1),Label).Text
End While
End Sub
' Event handler method for show button.
Sub show_Click(sender as Object, e As EventArgs)
' Get the underlying DataListItemCollection from the DataList object.
Dim myDataListItemCollection As DataListItemCollection = myDataList.Items
' Display the read-only properties.
Response.Write("<b>The Total number of items are " & _
myDataListItemCollection.Count & "</b>")
Response.Write("<br /><b>The ReadOnly property of the " & _
"DataListItemCollection is always " & _
myDataListItemCollection.IsReadOnly & "</b>")
Response.Write("<br /><b>The IsSynchronized property of the " & _
"DataListItemCollection is always " _
& myDataListItemCollection.IsSynchronized & "</b>")
myDataListItemCollection = Nothing
End Sub
' </Snippet2>
' <Snippet5>
Sub AllItems_Click(sender As Object, e As EventArgs)
Dim dataListEnumerator As IEnumerator
Dim currentItem As DataListItem
lblAllItems.Text = ""
' Get an enumerator to traverse the DataListItemCollection.
dataListEnumerator = myDataList.Items.GetEnumerator()
while(dataListEnumerator.MoveNext())
currentItem = CType(dataListEnumerator.Current,DataListItem)
' Display the current DataListItem onto the label.
lblAllItems.Text = lblAllItems.Text & CType((currentItem.Controls(1)), _
Label).Text & " "
End While
End Sub
' </Snippet5>
' <Snippet6>
Sub ItemSelected(sender As object, e As EventArgs)
' Get the underlying DataListItemCollection from the DataList object.
Dim myDataListItemCollection As DataListItemCollection = myDataList.Items
' Get the index of the selected radio button in the RadioButtonList.
Dim index As Integer = Convert.ToInt16(listItemNo.SelectedItem.Value)
' Get the DataListItem corresponding to index from DataList.
' SyncRoot is used to make access to the DataListItemCollection
' in a thread-safe manner It returns the object that invoked it.
Dim currentItem As DataListItem = _
CType(myDataListItemCollection.SyncRoot,DataListItemCollection)(index)
' Display the selected DataListItem onto a label.
lblDisplay.Text = "<b>DataListItem" & index & " is: " _
& CType(currentItem.Controls(1),Label).Text
currentItem = Nothing
myDataListItemCollection = Nothing
End Sub
' </Snippet6>
</script>
<html xmlns="http://www.w3.org/1999/xhtml" >
<head>
<title>
DataListItemCollection Example
</title>
</head>
<body>
<form runat="server" id="Form1">
<h3>
DataListItemCollection Example
</h3>
<table>
<tr>
<td>
<asp:datalist id="myDataList" runat="server" Font-Size="8pt"
Font-Names="Verdana" BorderColor="black" CellSpacing="5"
CellPadding="10" GridLines="Horizontal">
<HeaderStyle BackColor="#aaaadd"></HeaderStyle>
<HeaderTemplate>
EmployeeName EmployeeID
</HeaderTemplate>
<ItemTemplate>
<asp:Label id="label1" runat="server"
Text='<%# DataBinder.Eval(Container.DataItem, "EmployeeName") %>' />
<%# DataBinder.Eval(Container.DataItem, "EmployeeID")%>
</ItemTemplate>
</asp:datalist>
</td>
<td>
<asp:label id="lblAllItems1"
Text="The following items <br /> are copied to the array: "
Runat="server" ForeColor="blue" Font-Bold="true"
AssociatedControlID="listItemNo">
The following items <br /> are copied to the array:
</asp:label>
</td>
<td>
<b>Show Items:</b>
<asp:RadioButtonList ID="listItemNo"
OnSelectedIndexChanged="itemSelected" AutoPostBack="true"
Runat="server">
<asp:ListItem Value="0" Text="0"></asp:ListItem>
<asp:ListItem Value="1" Text="1"></asp:ListItem>
<asp:ListItem Value="2" Text="2"></asp:ListItem>
</asp:RadioButtonList>
</td>
<td>
<asp:Label ID="lblDisplay" Runat="server" />
</td>
</tr>
</table>
<p>
<asp:button id="show" onclick="show_Click" Runat="server"
Font-Bold="True" Text="DataList Information" />
<asp:button id="allitems" onclick="allItems_Click" Runat="server"
Font-Bold="True" Text="Show All DataListItems" />
</p>
<p>
<b>All DataList items will be shown here:</b>
<asp:label id="lblAllItems" Runat="server" ForeColor="blue" />
</p>
</form>
</body>
</html>
Opmerkingen
De DataListItemCollection klasse vertegenwoordigt een verzameling DataListItem objecten, die op zijn beurt de gegevensitems in een DataList besturingselement vertegenwoordigen. Gebruik een van de volgende methoden om programmatisch objecten op te halen DataListItem uit een DataList besturingselement:
Gebruik de indexeerfunctie om één DataListItem object op te halen uit de verzameling, met behulp van matrix-notatie.
Gebruik de CopyTo methode om de inhoud van de verzameling te kopiëren naar een System.Array object, dat vervolgens kan worden gebruikt om items uit de verzameling op te halen.
Gebruik de GetEnumerator methode om een System.Collections.IEnumerator interface te maken, die vervolgens kan worden gebruikt om items uit de verzameling op te halen.
De Count eigenschap geeft het totale aantal items in de verzameling op en wordt vaak gebruikt om de bovengrens van de verzameling te bepalen.
Constructors
| Name | Description |
|---|---|
| DataListItemCollection(ArrayList) |
Initialiseert een nieuw exemplaar van de DataListItemCollection klasse. |
Eigenschappen
| Name | Description |
|---|---|
| Count |
Hiermee haalt u het aantal DataListItem objecten in de verzameling op. |
| IsReadOnly |
Hiermee wordt een waarde opgehaald die aangeeft of de DataListItem objecten in de DataListItemCollection objecten kunnen worden gewijzigd. |
| IsSynchronized |
Hiermee wordt een waarde opgehaald die aangeeft of de toegang tot de DataListItemCollection synchronisatie is gesynchroniseerd (thread-safe). |
| Item[Int32] |
Hiermee haalt u een DataListItem object op bij de opgegeven index in de verzameling. |
| SyncRoot |
Hiermee haalt u het object op dat kan worden gebruikt om de toegang tot de DataListItemCollection verzameling te synchroniseren. |
Methoden
| Name | Description |
|---|---|
| CopyTo(Array, Int32) |
Kopieert alle items uit deze DataListItemCollection verzameling naar het opgegeven Array object, beginnend bij de opgegeven index in het Array object. |
| Equals(Object) |
Bepaalt of het opgegeven object gelijk is aan het huidige object. (Overgenomen van Object) |
| GetEnumerator() |
Retourneert een IEnumerator interface die alle DataListItem objecten in de DataListItemCollectionmap bevat. |
| GetHashCode() |
Fungeert als de standaardhashfunctie. (Overgenomen van Object) |
| GetType() |
Hiermee haalt u de Type huidige instantie op. (Overgenomen van Object) |
| MemberwiseClone() |
Hiermee maakt u een ondiepe kopie van de huidige Object. (Overgenomen van Object) |
| ToString() |
Retourneert een tekenreeks die het huidige object vertegenwoordigt. (Overgenomen van Object) |
Extensiemethoden
| Name | Description |
|---|---|
| AsParallel(IEnumerable) |
Hiermee schakelt u parallelle uitvoering van een query in. |
| AsQueryable(IEnumerable) |
Converteert een IEnumerable naar een IQueryable. |
| Cast<TResult>(IEnumerable) |
Cast de elementen van een IEnumerable naar het opgegeven type. |
| OfType<TResult>(IEnumerable) |
Hiermee filtert u de elementen van een IEnumerable op basis van een opgegeven type. |