[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)

Identify Rows and Cards

In Table Views, data records are represented by rows, while in Card Views they are represented by cards. In this topic, the term row is used in a general way to refer to both rows in Table Views and cards in Card Views.

Expanded Identifying Rows

Rows in views are identified by unique integer values - row handles. A View associates its rows with row handles using the following rules:

  • Each row has a row handle which uniquely identifies it, regardless of whether a row is currently visible (a row might not be visible due to scrolling, and it can also be hidden within collapsed groups).
  • Data row handles start from zero.
  • Group row handles are negative, starting from -1.

Visible rows can also be identified by their visible indices. These indexes start from zero. Successive integers are assigned to additional visible rows (group or data). A row is hidden if it is contained within a collapsed group row.

The image below illustrates the assignment rules, and the relationship between row handles and visible indices.

For information on how to obtain row identifiers, please see Obtaining Row Handles.

Expanded Special Row Handles

Row Description
New Item Row (Table View) This row allows an end-user to add new records to the data source. Its handle is returned by the DataControlBase.NewItemRowHandle property.
Automatic Filter Row (Table View) The Auto Filter Row allows an end-user to filter data on the fly. Typing text within this row automatically creates and applies a filter to the View. Its handle is returned by the DataControlBase.AutoFilterRowHandle property.
Invalid Row Generally, this row handle corresponds to a row which doesn't exist in a View. Its handle is returned by the DataControlBase.InvalidRowHandle property.

Expanded See Also

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