Framework:Javascript GridAngular GridReact GridVue Grid

Vue Grid: Row Models

The grid can be configured with different strategies for loading row data into the grid, which are encapsulated into different Row Models. Changing which Row Model the grid is using means changing the strategy the grid is using for loading rows.

The grid comes with four row models:

  1. Client-Side
  2. Server-Side
  3. Infinite
  4. Viewport

The Client-Side Row Model deals with client-side data. The Server-Side, Infinite and Viewport Row Models deal with server-side data. The following is a summary of each:

Which row model you use is set as a grid property rowModelType. Set it to one of 'clientSide', 'infinite', 'viewport', or 'serverSide'. The default is 'clientSide'.

When to Use

Which row model you use will depend on your application. Here are some quick rules of thumb:

Here are more detailed rules of thumb.

Row Model Comparisons

Below is a quick feature comparison of all the grid's features across all four row models.

FeatureClient-SideInfiniteServer-SideViewportAll Data in Client
Fetch Data as User Scrolls
Row Sorting
(client)
(server)
(client OR server)
(server)
Row Filtering
(client)
(server)
(client OR server)
(server)
Quick Filter
Floating Filters
Dynamic Row Height
Row Grouping
(client)
(server)
Row Pivoting
(client)
(server)
Lazy Loading Row Groups
Value Aggregation
(client)
(server)
Row Selection
Header Checkbox Selection
Range Selection
Column Spanning
Row Spanning
Column Pinning
Row Pinning
Pagination
Custom Filters
Cell Editors
Cell Renderers
Value Getter
Value Setter
Value Formatter
Value Parser
Full Width Rows
CSV Export
(data on screen)
(data on screen)
(data on screen)
Excel Export
(data on screen)
(data on screen)
(data on screen)
Clipboard Copy & Paste
Update via Transaction
(add only)
Update via Async Transactions
Specify Selectable Rows

Deeper Understanding of Row Models

The grid follows an MVC pattern. Each data item is wrapped in a Row Node and then stored in the Row Model. The grid rendering engine is called Row Renderer and listens for changes to the row model and updates the DOM accordingly.

Below shows a simplified version of a class diagram showing the relationships between the major classes involved with the row models.

Diagram of Major Classes involved with the Row Models

The following should be noted from the diagram:

Pagination

Pagination can be applied to any of the row model types. The documentation on each row model type covers pagination for that row model type.

Grid Datasource

The Client-Side row model does not need a datasource. Infinite, Viewport and Server-Side all use a datasource. The documentation on each row model type explains how to configure the datasource for the particular row model.