[Expand]General Information
[Expand]WinForms Controls
[Expand]ASP.NET Controls and MVC Extensions
[Expand]ASP.NET Bootstrap Controls
[Expand]ASP.NET Core Bootstrap Controls
[Collapse]WPF Controls
 [Expand]What's Installed
 [Expand].NET Core 3 Support
 [Expand]Common Concepts
 [Expand]MVVM Framework
 [Collapse]Controls and Libraries
  [Collapse]Data Grid
   [Expand]Getting Started
   [Expand]Implementation Details
   [Collapse]Grid View Data Layout
    [Expand]Columns and Card Fields
    [Collapse]Rows and Cards
      Identify Rows and Cards
      Obtain Row Handles
      Iterate Through Rows
     Data Cells
     Best Fit
     Column Chooser
     Compact Mode
   [Expand]Binding to Data
   [Expand]Master-Detail Data Representation
   [Expand]Data Editing and Validation
   [Expand]Filtering and Searching
   [Expand]Data Summaries
   [Expand]Paging and Scrolling
   [Expand]Focus, Navigation, Selection
   [Expand]Conditional Formatting
   [Expand]Appearance Customization
   [Expand]MVVM Enhancements
   [Expand]Printing and Exporting
   [Expand]Performance Improvement
   [Expand]Design-Time Features
   [Expand]Visual Elements
   [Expand]End-User Capabilities
  [Expand]Ribbon, Bars and Menu
  [Expand]Charts Suite
  [Expand]Pivot Grid
  [Expand]Rich Text Editor
  [Expand]Tree List
  [Expand]Gauge Controls
  [Expand]Map Control
  [Expand]Layout Management
  [Expand]Windows Modern UI
  [Expand]Data Editors
  [Expand]Navigation Controls
  [Expand]Spell Checker
  [Expand]Property Grid
  [Expand]PDF Viewer
  [Expand]TreeMap Control
  [Expand]Gantt Control
  [Expand]Diagram Control
  [Expand]Windows and Utility Controls
   Dialogs, Notifications and Panels
  [Expand]Scheduler (legacy)
 [Expand]Scaffolding Wizard
  Redistribution and Deployment
  Get More Help
 [Expand]API Reference
[Expand]Xamarin Controls
[Expand]Windows 10 App Controls
[Expand]Office File API
[Expand]Report and Dashboard Server
[Expand]eXpressApp Framework
[Expand]eXpress Persistent Objects
[Expand]CodeRush Classic
[Expand]Cross-Platform Core Libraries
[Expand]Tools and Utilities
 End-User Documentation
View this topic on docs.devexpress.com (Learn more)

Iterate Through Rows

Row traversing means accessing rows one by one. This can be useful, for example, when you need to locate a particular data row. This topic provides information on processing data rows. For information on how to process group rows, see Processing Group Rows.

Expanded Traversing Data Rows (Cards in Card Views)

Data rows are identified by their handles or visible indices. The total number of visible rows (group and data) is returned by the DataControlBase.VisibleRowCount property. If a View is grouped, some data rows can be hidden within collapsed group rows. In this instance, data rows contained within collapsed group rows are hidden, and not taken into account.

To traverse through all data rows including hidden rows, you should obtain their handles. Once you have determined the handles of all data rows, you only need a counter whose value is changed from 0 to the obtained number. The sample code below shows how to obtain the handles of data rows when a View is grouped.

Expanded Example: How to Collect the Handles of All Data Rows within a View (Including Rows in Collapsed Groups)

This example shows how to obtain the handles of all data rows (including rows in collapsed groups) contained within a View, except rows that are filtered out.

Is this topic helpful?​​​​​​​