# Server-Side Paging Views

## Content



The other server-side operation, paging, is specified with the **Paging** method returning **PagingView**, a class derived from **ClientView**:

```auto
PagingView<Product> productsPaged = products.Paging(p => p.ProductName, 20);
```

A paging view contains a segment (page) of data at any given time. To create a paging view, you need to specify the page size (20 in the example above) and a key selector by which to sort, because paging can only be done over sorted data.

Since a paging view is a [ClientView](/componentone/api/win/online-datasource/dotnet-framework-api/C1.Data.Entity.4.8/C1.Data.ClientView-1.html), it supports the two fundamental features of client views: it is cache-aware and live. The performance-enhancing cache-awareness of a paging view allows it to avoid round-trips to the server when a page is requested repeatedly. And since a paging view is live (as any [ClientView](/componentone/api/win/online-datasource/dotnet-framework-api/C1.Data.Entity.4.8/C1.Data.ClientView-1.html)), it reflects changes that you make to the data on the client. For example, if you delete an entity that is currently in a paging view, it will automatically adjust itself to the changed data, including, if needed, fetching some entities from the server to occupy vacant places on the page.