DetailsViewRowCollection Class

Note: This class is new in the .NET Framework version 2.0.

Represents a collection of DetailsViewRow objects in a DetailsView control.

Namespace: System.Web.UI.WebControls
Assembly: System.Web (in system.web.dll)

public class DetailsViewRowCollection : ICollection, IEnumerable
public class DetailsViewRowCollection implements ICollection, IEnumerable
public class DetailsViewRowCollection implements ICollection, IEnumerable

The DetailsViewRowCollection class is used to store and manage a collection of DetailsViewRow objects in a DetailsView control. Each row in a DetailsView control is represented by a DetailsViewRow object. The DetailsView control uses the DetailsViewRowCollection class for its Rows property.


The Rows property contains only the data rows. To access the header row, footer row, top pager row, and bottom pager row, use the HeaderRow, FooterRow, TopPagerRow, and BottomPagerRow properties, respectively.

The DetailsViewRowCollection class supports several ways to access the items in the collection:

  • Use the Item indexer to directly retrieve a DetailsViewRow object from the collection at a specific zero-based index.

  • Use the GetEnumerator method to retrieve an enumerator that can be used to iterate through the collection.

  • Use the CopyTo method to copy the items in the collection into an array, which can then be used to access the items in the collection.

To determine the total number of items in the collection, use the Count property.

The following code example demonstrates how to iterate through the DetailsViewRow objects in the Rows collection of a DetailsView control. The value of each row is then displayed on the page.

<%@ page language="C#" %>

<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)
      // Iterate through the Rows collection and display
      // the value of each field.
      MessageLabel.Text = "The row values are: <br/><br/>";

      foreach (DetailsViewRow row in ItemDetailsView.Rows)
        // 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/>";
      MessageLabel.Text = "No items.";


    <form runat="server">
      <h3>DetailsViewRowCollection Example</h3>
      <asp:detailsview id="ItemDetailsView"
          <asp:boundfield datafield="CustomerID"
            headertext="Customer ID"/>
          <asp:boundfield datafield="CompanyName"
            headertext="Company Name"/>
          <asp:boundfield datafield="Address"
          <asp:boundfield datafield="City"
          <asp:boundfield datafield="PostalCode"
            headertext="ZIP Code"/>
          <asp:boundfield datafield="Country"
      <asp:button id="SubmitButton" 
        text="Display Row Values"
      <asp:label id="MessageLabel"
      <!-- 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]"
          "<%$ ConnectionStrings:NorthWindConnectionString%>" 

  • AspNetHostingPermission  for operating in a hosted environment. Demand value: LinkDemand; Permission value: Minimal.
  • AspNetHostingPermission  for operating in a hosted environment. Demand value: InheritanceDemand; Permission value: Minimal.


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

Windows 98, Windows 2000 SP4, Windows Server 2003, Windows XP Media Center Edition, Windows XP Professional x64 Edition, Windows XP SP2, Windows XP Starter Edition

The .NET Framework does not support all versions of every platform. For a list of the supported versions, see System Requirements.

.NET Framework

Supported in: 2.0

Community Additions