This documentation is archived and is not being maintained.

DetailsViewRowCollection Class

Represents a collection of DetailsViewRow objects in a DetailsView control.

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

[AspNetHostingPermissionAttribute(SecurityAction.LinkDemand, Level = AspNetHostingPermissionLevel.Minimal)]
[AspNetHostingPermissionAttribute(SecurityAction.InheritanceDemand, Level = AspNetHostingPermissionLevel.Minimal)]
public class DetailsViewRowCollection : ICollection, 

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#" %>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" 
<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.";



<html xmlns="" >
  <head runat="server">
    <title>DetailsViewRowCollection Example</title>
    <form id="form1" 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%>" 



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 7, Windows Vista, Windows XP SP2, Windows XP Media Center Edition, Windows XP Professional x64 Edition, Windows XP Starter Edition, Windows Server 2008 R2, Windows Server 2008, Windows Server 2003, Windows Server 2000 SP4, Windows Millennium Edition, Windows 98

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

.NET Framework

Supported in: 3.5, 3.0, 2.0