Configuration

This section describes the configuration options used to configure the ODataStore.

beforeSend

A function used to customize a web request before it is sent.

Type: function
Function parameters:
options: Object

Specifies the request parameters.

Object structure:
url: String

The request URL.

async: Boolean

Specifies whether the request is asynchronous or synchronous.

method: String

A string that specifies the request method ("GET" or "POST").

timeout: Number

The request timeout.

params: Object

The additional request parameters.

payload: Object

The request body; for example, when updating an item, this property holds the values object.

headers: Object

An object holding the request headers.

deserializeDates

Specifies whether or not dates found in the response are deserialized.

Type: Boolean

ODataStore can deserialize dates represented in the ISO8601 format (e.g "2016-07-13T16:05:00.000Z") or format used by Microsoft (e.g. "/Date(1198908717056)/"). In the second case, ODataStore adds the time-zone offset corresponding to the client time-zone. In the first case, ODataStore parses the date string without taking a timezone modifier (for example "Z") into account.

errorHandler

Specifies the function called when the Store causes an error.

Type: function

The function passed to this option takes on the JavaScript Error object as a parameter.

JavaScript
var storeConfig = {
    errorHandler: function(error) {
        console.log(error.message);
    }
};

jsonp

Specifies whether the ODataStore uses the JSONP approach to access non-CORS-compatible remote services.

Type: Boolean
Default Value: false

key

Specifies the key properties within the data associated with the Store.

Type: String|Array

The key configuration option is required if you create a Store for read-write data access. The key property is specified by an appropriate getter. If you need to specify a compound key property, assign an array of getters to this option.

The following example demonstrates how to set id and code key properties.

JavaScript
var storeConfig = {
    key: ["id", "code"]
}

keyType

Specifies the type of the ODataStore key property. The following key types are supported out of the box: String, Int32, Int64, and Guid.

Type: String|Object

If a key expression is a simple getter, the keyType option takes on a string value.

JavaScript
var store = new DevExpress.data.ODataStore({
    url: "/url/to/service",
    key: "ProductID",
    keyType: "Guid"
});

If you specified a composite key, the keyType option should take on an object providing corresponding properties for each key expression, as demonstrated in the following example.

JavaScript
var context = new DevExpress.data.ODataContext({
    url: "http://www.example.com/Northwind.svc",
    entities: {
        Products: {
            key: [ "ProductID", "ProductCode" ],
            keyType: {
                ProductID: "Guid",
                ProductCode: "Int32"
            }
        }
    }
});

onInserted

A handler for the inserted event.

Type: function
Function parameters:
values: Object

An object representing the inserted item.

A key value of the inserted item.

Assign a function to perform a custom action after a data item is added.

onInserting

A handler for the *inserting event.

Type: function
Function parameters:
values: Object

An object representing the item being inserted.

Assign a function to perform a custom action before a data item is added.

onLoaded

A handler for the *loaded event.

Type: function
Function parameters:
result: Array

The loaded data array.

Assign a function to perform a custom action after data is loaded.

onLoading

A handler for the *loading event.

Type: function
Function parameters:
loadOptions: Object

An object defining options for the loaded data.

Object structure:
filter: Object

A filter expression for the loaded data.

sort: Object

A sort expression for the loaded data.

select: Object

An expression for selection in the loaded data.

group: Object

An expression for grouping in the loaded data.

skip: Number

The number of item to skip.

take: Number

The number of items to take for the loaded data.

userData: Object

A bag for holding user-defined parameters.

requireTotalCount: Boolean

Specifies whether or not the load function should resolve the returned Deferred.Promise using the second argument (extra) containing the totalCount field.

Assign a function to perform a custom action before data is loaded.

onModified

A handler for the *modified event.

Type: function

Assign a function to perform a custom action after data is modified.

onModifying

A handler for the modifying event.

Type: function

Assign a function to perform a custom action before the data is modified.

onRemoved

A handler for the *removed event.

Type: function
Function parameters:

A key value of the removed item.

Assign a function to perform a custom action after a data item has been removed.

onRemoving

A handler for the *removing event.

Type: function
Function parameters:

A key value of the item being removed.

Assign a function to perform a custom action before a data item is removed.

onUpdated

A handler for the *updated event.

Type: function
Function parameters:

A key value of the updated item.

values: Object

New values for the updated item.

Assign a function to perform a custom action after a data item has been updated.

onUpdating

A handler for the *updating event.

Type: function
Function parameters:

A key value of the item being updated.

values: Object

New values for the item being updated.

Assign a function to perform a custom action before a data item is updated.

url

Specifies the URL of the entity being accessed via the current ODataStore.

Type: String

version

Specifies the version of the OData protocol used to interact with the data service.

Type: Number
Default Value: 2
Accepted Values: 2 | 3 | 4

withCredentials

Specifies the value of the withCredentials field of the underlying jqXHR object.

Type: Boolean
Default Value: false

Setting this option to true enables sending cookies and authorization headers to foreign domains (CORS-related).