# Data Iterator

**Path:** Components/Data Display

[Back to Documentation Index](http://rubicblazor.skyconis.com/docs.md)

---

Data Iterator

 RbDataIterator is the shared data pipeline used by collection components. It renders typed content,
 applies filtering and sorting, limits results with Skip / Take , observes collection changes,
 and optionally virtualizes the resulting entries.

 Basic Rendering and No Data

 Render typed child content and provide a custom empty state.

 Show code

 Clear 

 Reset 

 1 - Design review
 2 - Release planning
 3 - Customer meeting

 Filter, Sort and Range

 Combine OnFilter , Sort , Skip , Take , SetSkip , SetTake ,
 GetEntries , FilteredEntryCount , DisplayableEntries ,
 RefreshAsync , and OnRefreshed .

 Show code

 Ascending 

 Previous 

 Next 

 Read cached values 

 Recalculate entries 

 Source: 12, filtered: 12, displayed: 4,
 filter calls: 1, cache reads: 0,
 recalculations: 0, refreshes: 1

 1 - Work item 01
 2 - Work item 02
 3 - Work item 03
 4 - Work item 04

 Observable and Replaceable Sources

 Observe INotifyCollectionChanged , replace the source through SetDataSourceAsync ,
 and receive OnDataSourceChanged notifications.

 Show code

 Add 

 Remove first 

 Replace source 

 Source entries: 2, cached entries: 2,
 source changes: 1, refreshes: 1

 1 - Initial entry
 2 - Observable entry

 Query API

 Navigate the current result with FirstOrDefault , LastOrDefault , NextOrDefault ,
 PreviousOrDefault , Each , and IndexOf .

 Show code

 First 

 Previous 

 Next 

 Last 

 Walk next two 

 Current: None, source index: -1,
 visited: None

 1 - Alpha
 2 - Bravo
 3 - Charlie
 4 - Delta

 Virtualization

 Enable virtualization while keeping the same typed child-content contract.

 Show code

 ✕

 Contents
