DetailsViewRowCollection.GetEnumerator Metod
Definition
Viktigt
En del information gäller för förhandsversionen av en produkt och kan komma att ändras avsevärt innan produkten blir allmänt tillgänglig. Microsoft lämnar inga garantier, uttryckliga eller underförstådda, avseende informationen som visas här.
Returnerar en uppräknare som innehåller alla DetailsViewRow objekt i objektet DetailsViewRowCollection .
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
Returer
Ett IEnumerator-implementerat objekt som innehåller alla DetailsViewRow objekt i DetailsViewRowCollection.
Implementeringar
Exempel
Följande kodexempel visar hur du använder GetEnumerator metoden för att hämta en uppräknare som innehåller objekten från samlingen. Uppräknaren itereras sedan igenom och värdet för varje rad visas på sidan.
<%@ 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 SubmitButton_Click(Object sender, EventArgs e)
{
// Use the Count property to determine whether the
// Rows collection contains any item.
if (ItemDetailsView.Rows.Count > 0)
{
MessageLabel.Text = "The row values are: <br/><br/>";
// Get the enumerator that contains the data rows in the
// DetailsView control.
IEnumerator rowEnumerator = ItemDetailsView.Rows.GetEnumerator();
// Iterate though the enumerator and display the field values.
while (rowEnumerator.MoveNext())
{
DetailsViewRow row = (DetailsViewRow)rowEnumerator.Current;
// Use the Text property to access the value of
// each cell. In this example, the cells in the
// first column (index 0) contains the field names,
// while the cells in the second column (index 1)
// contains the field value.
MessageLabel.Text += row.Cells[0].Text + " = " +
row.Cells[1].Text + "<br/>";
}
}
else
{
MessageLabel.Text = "No items.";
}
}
</script>
<html xmlns="http://www.w3.org/1999/xhtml" >
<head runat="server">
<title>DetailsViewRowCollection GetEnumerator Example</title>
</head>
<body>
<form id="form1" runat="server">
<h3>DetailsViewRowCollection GetEnumerator Example</h3>
<asp:detailsview id="ItemDetailsView"
datasourceid="DetailsViewSource"
allowpaging="true"
autogeneraterows="false"
runat="server">
<fields>
<asp:boundfield datafield="CustomerID"
headertext="Customer ID"/>
<asp:boundfield datafield="CompanyName"
headertext="Company Name"/>
<asp:boundfield datafield="Address"
headertext="Address"/>
<asp:boundfield datafield="City"
headertext="City"/>
<asp:boundfield datafield="PostalCode"
headertext="ZIP Code"/>
<asp:boundfield datafield="Country"
headertext="Country"/>
</fields>
</asp:detailsview>
<br/>
<asp:button id="SubmitButton"
text="Display Row Values"
onclick="SubmitButton_Click"
runat="server"/>
<br/><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="DetailsViewSource"
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 SubmitButton_Click(ByVal sender As Object, ByVal e As EventArgs)
' Use the Count property to determine whether the
' Rows collection contains any item.
If ItemDetailsView.Rows.Count > 0 Then
MessageLabel.Text = "The row values are: <br/><br/>"
' Get the enumerator that contains the data rows in the
' DetailsView control.
Dim rowEnumerator As IEnumerator = ItemDetailsView.Rows.GetEnumerator()
' Iterate though the enumerator and display the field values.
While rowEnumerator.MoveNext()
Dim row As DetailsViewRow = CType(rowEnumerator.Current, DetailsViewRow)
' Use the Text property to access the value of
' each cell. In this example, the cells in the
' first column (index 0) contains the field names,
' while the cells in the second column (index 1)
' contains the field value.
MessageLabel.Text &= row.Cells(0).Text & " = " & _
row.Cells(1).Text & "<br/>"
End While
Else
MessageLabel.Text = "No items."
End If
End Sub
</script>
<html xmlns="http://www.w3.org/1999/xhtml" >
<head runat="server">
<title>DetailsViewRowCollection GetEnumerator Example</title>
</head>
<body>
<form id="form1" runat="server">
<h3>DetailsViewRowCollection GetEnumerator Example</h3>
<asp:detailsview id="ItemDetailsView"
datasourceid="DetailsViewSource"
allowpaging="true"
autogeneraterows="false"
runat="server">
<fields>
<asp:boundfield datafield="CustomerID"
headertext="Customer ID"/>
<asp:boundfield datafield="CompanyName"
headertext="Company Name"/>
<asp:boundfield datafield="Address"
headertext="Address"/>
<asp:boundfield datafield="City"
headertext="City"/>
<asp:boundfield datafield="PostalCode"
headertext="ZIP Code"/>
<asp:boundfield datafield="Country"
headertext="Country"/>
</fields>
</asp:detailsview>
<br/>
<asp:button id="SubmitButton"
text="Display Row Values"
onclick="SubmitButton_Click"
runat="server"/>
<br/><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="DetailsViewSource"
selectcommand="Select [CustomerID], [CompanyName], [Address],
[City], [PostalCode], [Country] From [Customers]"
connectionstring=
"<%$ ConnectionStrings:NorthWindConnectionString%>"
runat="server"/>
</form>
</body>
</html>
Kommentarer
Använd den här metoden för att hämta en uppräknare som kan itereras linjärt för att få åtkomst till varje objekt i DetailsViewRowCollection objektet. Använd egenskapen för att komma åt objektet på den aktuella positionen i uppräknaren Current . MoveNext Använd metoden för att flytta till nästa objekt i samlingen. Om du vill flytta uppräknaren till den ursprungliga positionen använder du Reset metoden .
Note
När du först hämtar uppräknaren eller använder Reset metoden för att flytta uppräknaren till det första objektet i samlingen måste du anropa MoveNext metoden. Annars är objektet som representeras av Current egenskapen odefinierat.