DevExtreme jQuery - DataSource Options

This section describes properties that configure the DataSource.

NOTE

The DataSource allows you to specify CustomStore properties in its configuration object. If you define CustomStore properties as shown in the following code, they override the store.

JavaScript
  • var infiniteList = new DevExpress.data.DataSource({
  • load: function (loadOptions) {
  • // Loading data objects
  • },
  • byKey: function (key) {
  • // Retrieving a data object by key
  • }
  • });

customQueryParams

Custom parameters that should be passed to an OData service with the load query. Available only for the ODataStore.

Type: any

JavaScript
  • var ds = new DevExpress.data.DataSource({
  • store: {
  • type: "odata",
  • // ODataStore is configured here
  • },
  • customQueryParams: {
  • param: "value"
  • }
  • });
See Also

expand

Specifies the navigation properties to be loaded with the OData entity. Available only for the ODataStore.

Type:

Array<String>

|

String

See Also

filter

Specifies data filtering conditions.

Possible variants:

  • Binary filter
    Supported operators: "=", "<>", ">", ">=", "<", "<=", "startswith", "endswith", "contains", "notcontains".
    Example:

    • [ "dataField", "=", 3 ]
  • Unary filter
    Supported operators: binary operators, "!".
    Example:

    • [ "!", [ "dataField", "=", 3 ] ]
  • Complex filter
    Supported operators: binary and unary operators, "and", "or".
    Example:

    • [
    • [ "dataField", "=", 10 ],
    • "and",
    • [
    • [ "anotherDataField", "<", 3 ],
    • "or",
    • [ "anotherDataField", ">", 11 ]
    • ]
    • ]
NOTE
Filtering works when inputting a plain data structure only. However, if you need the filtering capability and hierarchical data, transform the plain data using the DataSource's group property.
See Also

group

Specifies data grouping properties.

This property accepts one of the following:

  • String
    The field name to group by.

  • Object
    An object with the following fields:

    • selector: String
      The field name to group by.
    • desc: Boolean
      Sorts the selector field in descending order.
  • Array
    An array of strings and objects described above.

  • Function
    A function that returns the value to group by.

See Also

langParams

Specifies parameters for language-specific sorting and filtering.

Type:

LangParams

Use this property to include language-specific parameters in sorting and filtering operations performed on a client. For example, you can use langParams to make DataSource ignore letters with diacritic symbols. Specify locale and collator options as in the example below:

JavaScript
  • const dataSource = new DevExpress.data.DataSource({
  • // ...
  • langParams: {
  • locale: 'fr',
  • collatorOptions: {
  • sensitivity: 'accent',
  • caseFirst: 'upper'
  • }
  • }
  • });

map

Specifies an item mapping function.

Type:

Function

Function parameters:
dataItem:

Object

An initial data item.

Return Value:

Object

A modified data item.

See Also

onChanged

A function that is executed after data is loaded.

Type:

Function

Function parameters:
e:

Object

Information about changes.
Appears only when the push(changes) method is called and the reshapeOnPush property is false.

Object structure:
Name Type Description
changes

Array<any>

The received changes.

JavaScript
  • var ds = new DevExpress.data.DataSource({
  • onChanged: function () {
  • // Your code goes here
  • }
  • });

onLoadError

A function that is executed when data loading fails.

Type:

Function

Function parameters:
error:

Object

The error.

Object structure:
Name Type Description
message

String

The error message.

JavaScript
  • var ds = new DevExpress.data.DataSource({
  • onLoadError: function (error) {
  • console.log(error.message);
  • }
  • });

onLoadingChanged

A function that is executed when the data loading status changes.

Type:

Function

Function parameters:
isLoading:

Boolean

Indicates whether data is being loaded.

JavaScript
  • var ds = new DevExpress.data.DataSource({
  • onLoadingChanged: function (isLoading) {
  • // Your code goes here
  • }
  • });

pageSize

Specifies the maximum number of data items per page. Applies only if paginate is true.

Type:

Number

Default Value: 20

When data is grouped, this property specifies the number of groups per page. However, in the DataGrid and TreeList, it specifies the number of rows per page including group rows.

paginate

Specifies whether the DataSource loads data items by pages or all at once. Defaults to false if group is set; otherwise, true.

Type:

Boolean

| undefined
Default Value: undefined

postProcess

Specifies a post processing function.

Type:

Function

Function parameters:
data:

Array<any>

Data loaded in the DataSource.

Return Value:

Array<any>

Data after processing.

NOTE
When the paginate property is enabled, the postProcess function handles only data available for the selected page. If you need to access all data, process data before it is passed to the store.
See Also

pushAggregationTimeout

Specifies the period (in milliseconds) when changes are aggregated before pushing them to the DataSource.

Type:

Number

| undefined
Default Value: undefined

When this property is undefined, the aggregation period is calculated automatically based on the rendering speed's measurements.

See Also

requireTotalCount

Specifies whether the DataSource requests the total count of data items in the storage.

Type:

Boolean

If this property is set to true, the Promise that the load() method returns is resolved with a second argument that contains the totalCount field:

index.js
  • var ds = new DevExpress.data.DataSource({
  • // ...
  • requireTotalCount: true
  • });
  •  
  • ds.load()
  • .done(function (data, extra) {
  • // "data" contains the loaded data
  • // "extra" contains the "totalCount" field
  • });
NOTE
When scrolling is infinite in the DataGrid, this property's value is always false.

reshapeOnPush

Specifies whether to reapply sorting, filtering, grouping, and other data processing operations after receiving a push.

Type:

Boolean

Default Value: false

searchExpr

Specifies the fields to search.

Type:

getter

|

Array<getter>

In most cases, you should pass the name of a field by whose value data items are searched. Assign an array of field names to this property if you need to search elements by several field values.

JavaScript
  • var ds = new DevExpress.data.DataSource({
  • // ...
  • searchExpr: ["firstName", "lastName"]
  • });

You can use this property along with searchOperation and searchValue to specify a simple filter. Use the filter property for more complex filtering conditions. Filters are combined if you specify them in both ways.

NOTE
Searching works when inputting a plain data structure only. However, if you need the searching capability and hierarchical data, transform the plain data using the DataSource's group property.
See Also

searchOperation

Specifies the comparison operation used in searching.

Type:

Object

Default Value: 'contains'

You can use this property with searchExpr and searchValue to specify a simple filter. Use the filter property for more complex filtering conditions. Filters are combined if you specify them in both ways.

See Also

searchValue

Specifies the value to which the search expression is compared.

Type: any
Default Value: null

You can use this property along with searchExpr and searchOperation to specify a simple filter. Use the filter property for more complex filtering conditions. Filters are combined if you specify them in both ways.

See Also

select

Specifies the fields to select from data objects.

This property accepts one of the following:

  • String
    A field name to select.

  • Array of strings
    Several field names to select.

  • Function
    A function implementing custom selection logic.

See Also

sort

Specifies data sorting properties.

This property accepts one of the following:

  • String
    The field name to sort by.

  • Object
    An object with the following fields:

    • selector: String
      The field name to sort by.
    • desc: Boolean
      Sorts the selector field in descending order.
  • Array
    An array of strings and objects described above.

  • Function
    A function that returns the value to sort by.

See Also

store

Configures the store underlying the DataSource.

Type:

Store

|

Store Configuration

|

Array<any>

This property accepts one of the following:

  • Store instance
    An ArrayStore, LocalStore, ODataStore, or CustomStore instance.

  • Store configuration object
    An ArrayStore, LocalStore, or ODataStore configuration object. Make sure to set the type property.

  • Array
    Assigning an array to the store property automatically creates an ArrayStore in the DataSource.

JavaScript
  • var ds = new DevExpress.data.DataSource({
  • store: new DevExpress.data.ArrayStore({
  • // ArrayStore instance
  • })
  • // ===== or =====
  • store: {
  • type: "array",
  • // ArrayStore configuration object
  • }
  • // ===== or =====
  • store: [
  • { id: 1, name: "John Doe" }
  • ]
  • });