expressappframework-118450-ui-construction-views-list-view-data-access-modes-server-server-view-instant-feedback-and-instant-feedback-view-modes.md
This article extends the List View Data Access Modes topic and details Server, ServerView, InstantFeedback, and InstantFeedbackView modes behavior.
All these modes support XPO and EF Core ORMs.
A List View does not have simultaneous access to all objects of the ListView.CollectionSource type. Only those objects that are currently visible are loaded in small portions on demand. Each operation that assumes that new visible objects will appear (scrolling, paging, grouping, sorting) requires additional data requests.
If you have a custom Controller that accesses the List Editor’s control in a List View to execute custom sorting or grouping, the Controller may no longer work, since the database server executes grouping and sorting. Custom summaries are also calculated on the server side.
In ServerView , InstantFeedbackView , and DataView modes, List Editors do not display non-persistent property values. To show them, apply the DevExpress.Xpo.PersistentAliasAttribute (XPO) or DevExpress.ExpressApp.DC.PersistentAliasAttribute (EF Core) to these properties.
List Editors do not support filter, sort, and group operations for non-persistent properties. To enable these operations, apply the DevExpress.Xpo.PersistentAliasAttribute (XPO) or DevExpress.ExpressApp.DC.PersistentAliasAttribute (EF Core) to these properties.
Inline editing is not supported in ServerView , InstantFeedback , and InstantFeedbackView modes. If an original object was modified, it is not displayed in a List View until you commit changes and reload the collection.
Controls that support these modes do not have full access to underlying data and cannot initiate filter, sort, and group operations on the client side. These operations are delegated to the underlying ORM (EF Core or XPO), which constructs an appropriate SQL statement and sends a query to the SQL server to retrieve a small portion of data that should immediately be displayed to the user. You cannot filter, sort, or group data against non-persistent properties – it is not possible to build a SQL query against a runtime value that exists on the client side only, and execute it on the database server side. Filter, group, and sort operations are disabled if a property is non-persistent.
If you want one of these modes to display a nested List View, make sure that there is no logic for sorting, filtering or anything else in the getter of the underlying collection, and there are no subscribers to the collection’s events. This logic and subscribers will not be taken into account, because a standalone server collection will be created instead of the original collection.
The Server , ServerView , InstantFeedback , or InstantFeedbackView mode option and the DataSourceProperty attribute do not work simultaneously.
If you use a legacy database where a table has a primary compound key, such a table cannot be used to supply data in Server , ServerView , InstantFeedback , and InstantFeedbackView mode.
The OpenObjectController.OpenObject Action is inactive in the ServerView , InstantFeedback , and InstantFeedbackView modes.
Tip
ServerView is the fastest synchronous data access mode.
Tip
InstantFeedbackView is the fastest asynchronous data access mode.
See Also