DataKeyArray.GetEnumerator Метод
Определение
Важно!
Некоторые сведения относятся к предварительной версии продукта, в которую до выпуска могут быть внесены существенные изменения. Майкрософт не предоставляет никаких гарантий, явных или подразумеваемых, относительно приведенных здесь сведений.
Возвращает перечислитель, содержащий все расположенные в коллекции объекты DataKey.
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
Возвращаемое значение
Реализованный с помощью интерфейса IEnumerator объект, который содержит все объекты DataKey в коллекции.
Реализации
Примеры
В следующем примере кода показано, как выполнить итерацию по перечислителю, созданному методом GetEnumerator .
<%@ 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>
Комментарии
Используйте метод , GetEnumerator чтобы получить перечислитель, который можно выполнить линейно, чтобы получить доступ к каждому элементу в коллекции. Чтобы получить доступ к элементу в текущей позиции в перечислителе IEnumerator.Current , используйте свойство . Используйте метод для IEnumerator.MoveNext перехода к следующему элементу в коллекции. Чтобы переместить перечислитель в исходное положение, используйте IEnumerator.Reset метод .
Примечание
При первоначальном получении перечислителя или использовании IEnumerator.Reset метода для перемещения перечислителя в первый элемент в коллекции необходимо вызвать IEnumerator.MoveNext метод . В противном случае элемент, представленный свойством IEnumerator.Current , не определен.