DataKeyArray.GetEnumerator Método
Definição
Importante
Algumas informações se referem a produtos de pré-lançamento que podem ser substancialmente modificados antes do lançamento. A Microsoft não oferece garantias, expressas ou implícitas, das informações aqui fornecidas.
Retorna um enumerador que contém todos os objetos DataKey na coleção.
public:
virtual System::Collections::IEnumerator ^ GetEnumerator();
public System.Collections.IEnumerator GetEnumerator ();
abstract member GetEnumerator : unit -> System.Collections.IEnumerator
override this.GetEnumerator : unit -> System.Collections.IEnumerator
Public Function GetEnumerator () As IEnumerator
Retornos
Um objeto implementado por IEnumerator que contém todos os objetos DataKey na coleção.
Implementações
Exemplos
O exemplo de código a seguir demonstra como iterar por meio do enumerador criado pelo GetEnumerator método.
<%@ Page language="C#" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<script runat="server">
void CustomerGridView_DataBound(Object sender, EventArgs e)
{
// Use the Count property to determine whether the
// DataKeys collection contains any items.
if (CustomerGridView.DataKeys.Count > 0)
{
MessageLabel.Text = "The primary key of each record displayed are: <br/><br/>";
// Use the GetEnumerator method to create an enumerator that
// contains the DataKey objects for the GridView control.
IEnumerator keyEnumerator = CustomerGridView.DataKeys.GetEnumerator();
// Iterate though the enumerator and display the primary key
// value of each record displayed.
while (keyEnumerator.MoveNext())
{
DataKey key = (DataKey)keyEnumerator.Current;
MessageLabel.Text += key.Value.ToString() + "<br/>";
}
}
else
{
MessageLabel.Text = "No DataKey objects.";
}
}
</script>
<html xmlns="http://www.w3.org/1999/xhtml" >
<head runat="server">
<title>DataKeyArray Example</title>
</head>
<body>
<form id="form1" runat="server">
<h3>DataKeyArray Example</h3>
<asp:gridview id="CustomerGridView"
datasourceid="CustomerDataSource"
autogeneratecolumns="true"
datakeynames="CustomerID"
allowpaging="true"
ondatabound="CustomerGridView_DataBound"
runat="server">
</asp:gridview>
<br/>
<asp:label id="MessageLabel"
forecolor="Red"
runat="server"/>
<!-- This example uses Microsoft SQL Server and connects -->
<!-- to the Northwind sample database. Use an ASP.NET -->
<!-- expression to retrieve the connection string value -->
<!-- from the Web.config file. -->
<asp:sqldatasource id="CustomerDataSource"
selectcommand="Select [CustomerID], [CompanyName], [Address], [City], [PostalCode], [Country] From [Customers]"
connectionstring="<%$ ConnectionStrings:NorthWindConnectionString%>"
runat="server"/>
</form>
</body>
</html>
<%@ Page language="VB" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<script runat="server">
Sub CustomerGridView_DataBound(ByVal sender As Object, ByVal e As EventArgs) Handles CustomerGridView.DataBound
' Use the Count property to determine whether the
' DataKeys collection contains any items.
If CustomerGridView.DataKeys.Count > 0 Then
MessageLabel.Text = "The primary key of each record displayed are: <br/><br/>"
' Use the GetEnumerator method to create an enumerator that
' contains the DataKey objects for the GridView control.
Dim keyEnumerator As IEnumerator = CustomerGridView.DataKeys.GetEnumerator()
' Iterate though the enumerator and display the primary key
' value of each record displayed.
While keyEnumerator.MoveNext()
Dim key As DataKey = CType(keyEnumerator.Current, DataKey)
MessageLabel.Text &= key.Value.ToString() & "<br/>"
End While
Else
MessageLabel.Text = "No DataKey objects."
End If
End Sub
</script>
<html xmlns="http://www.w3.org/1999/xhtml" >
<head runat="server">
<title>DataKeyArray Example</title>
</head>
<body>
<form id="form1" runat="server">
<h3>DataKeyArray Example</h3>
<asp:gridview id="CustomerGridView"
datasourceid="CustomerDataSource"
autogeneratecolumns="true"
datakeynames="CustomerID"
allowpaging="true"
runat="server">
</asp:gridview>
<br/>
<asp:label id="MessageLabel"
forecolor="Red"
runat="server"/>
<!-- This example uses Microsoft SQL Server and connects -->
<!-- to the Northwind sample database. Use an ASP.NET -->
<!-- expression to retrieve the connection string value -->
<!-- from the Web.config file. -->
<asp:sqldatasource id="CustomerDataSource"
selectcommand="Select [CustomerID], [CompanyName], [Address], [City], [PostalCode], [Country] From [Customers]"
connectionstring="<%$ ConnectionStrings:NorthWindConnectionString%>"
runat="server"/>
</form>
</body>
</html>
Comentários
Use o GetEnumerator método para obter um enumerador que pode ser iterado linearmente para acessar cada item na coleção. Para acessar o item na posição atual no enumerador, use a IEnumerator.Current propriedade. Use o IEnumerator.MoveNext método para mover para o próximo item na coleção. Para mover o enumerador para sua posição inicial, use o IEnumerator.Reset método.
Observação
Quando você obtém inicialmente o enumerador ou usa o IEnumerator.Reset método para mover o enumerador para o primeiro item da coleção, você deve chamar o IEnumerator.MoveNext método. Caso contrário, o item representado pela IEnumerator.Current propriedade é indefinido.