ODataStore 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

The method passed to this option should take on a request object as a parameter, which provides the following fields.

  • async - specifies whether the request is asynchronous or synchronous.
  • method - a string representing the request method ("GET" or "POST")
  • url - the request URL
  • params - the additional request parameters
  • payload - the request body; for example, when updating an item, this property holds the values object
  • headers - an object holding the request headers
  • timeout - the request timeout

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);
    }
};

inserted

Deprecated

Use the onInserted option instead.

inserting

Deprecated

Use the onInserting option instead.

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"
            }
        }
    }
});

loaded

Deprecated

Use the onLoaded option instead.

loading

Deprecated

Use the onLoading option instead.

modified

Deprecated

Use the onModified option instead.

modifying

Deprecated

Use the onModifying option instead.

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.

removed

Deprecated

Use the onRemoved option instead.

removing

Deprecated

Use the onRemoving option instead.

updated

Deprecated

Use the onUpdated option instead.

updating

Deprecated

Use the onUpdating option instead.

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).