Configuration

This section describes options that configure Sortable widget content, behavior, and appearance.

See Also

allowDropInsideItem

Allows a user to drop an item inside another item.

Type:

Boolean

Default Value: false

allowReordering

Allows a user to reorder sortable items.

Type:

Boolean

Default Value: true

autoScroll

Enables automatic scrolling while dragging an item beyond the viewport.

Type:

Boolean

Default Value: true

boundary

Specifies a DOM element that limits the dragging area.

Type:

String

|

DOM Node

|

jQuery

Default Value: undefined

This option accepts the following value types:

  • String
    A CSS selector. For example: "#elementId".
  • DOM Node
    An HTML DOM element. For example: document.getElementById("elementId").
  • jQuery
    A CSS selector wrapped in a jQuery element. For example: $("#elementId").

container

Specifies a custom container in which the draggable item should be rendered.

Type:

String

|

DOM Node

|

jQuery

Default Value: undefined

This option accepts the following value types:

  • String
    A CSS selector. For example: "#elementId".
  • DOM Node
    An HTML DOM element. For example: document.getElementById("elementId").
  • jQuery
    A CSS selector wrapped in a jQuery element. For example: $("#elementId").

cursorOffset

Specifies the cursor offset from the dragged item.

Type:

String

|

Object

data

A container for custom data.

Type: any
Default Value: undefined

dragDirection

Specifies the directions in which an item can be dragged.

Type:

String

Default Value: 'both'
Accepted Values: 'both' | 'horizontal' | 'vertical'

dragTemplate

Specifies custom markup to be shown instead of the item being dragged.

Type:

template

Function parameters:
dragInfo:

Object

Information about the item being dragged.

Object structure:
Name Type Description
fromIndex

Number

The item's original position.

itemData any

The item's data.

itemElement

Element (jQuery or HTML)

The container of the item being dragged. It is an HTML Element or a jQuery Element when you use jQuery.

containerElement:

Element (jQuery or HTML)

A container in which the template should be rendered.

Return Value:

String

|

DOM Node

|

jQuery

One of the following:

  • HTML markup as a string
  • A DOM node
  • A DOM node wrapped in a jQuery element
Default Value: undefined

dropFeedbackMode

Specifies how to highlight the item's drop position.

Type:

String

Default Value: 'push'
Accepted Values: 'push' | 'indicate'

This option accepts the following values:

  • "push"
    Items move apart with animation, making free space for the dragged item to be placed.

  • "indicate"
    Items do not animate, a blue square appears at the place where the dragged item is going to be placed.

elementAttr

Specifies the attributes to be attached to the widget's root element.

Type:

Object

Default Value: {}
jQuery
$(function(){
    $("#sortableContainer").dxSortable({
        // ...
        elementAttr: {
            id: "elementId",
            class: "class-name"
        }
    });
});
Angular
HTML
TypeScript
<dx-sortable ...
    [elementAttr]="{ id: 'elementId', class: 'class-name' }">
</dx-sortable>
import { DxSortableModule } from "devextreme-angular";
// ...
export class AppComponent {
    // ...
}
@NgModule({
    imports: [
        // ...
        DxSortableModule
    ],
    // ...
})
ASP.NET MVC Controls
Razor C#
Razor VB
@(Html.DevExtreme().Sortable()
    .ElementAttr("class", "class-name")
    // ===== or =====
    .ElementAttr(new {
        @id = "elementId",
        @class = "class-name"
    })
    // ===== or =====
    .ElementAttr(new Dictionary<string, object>() {
        { "id", "elementId" },
        { "class", "class-name" }
    })

)
@(Html.DevExtreme().Sortable() _
    .ElementAttr("class", "class-name")
    ' ===== or =====
    .ElementAttr(New With {
        .id = "elementId",
        .class = "class-name"
    })
    ' ===== or =====
    .ElementAttr(New Dictionary(Of String, Object) From {
        { "id", "elementId" },
        { "class", "class-name" }
    })
)

filter

Specifies a CSS selector for the items that can be dragged.

Type:

String

Default Value: '> *'

group

Allows you to group several widgets, so that users can drag and drop items between them.

Type:

String

Default Value: undefined

Set this option to identical values for the widgets you want to collect in a single group.

handle

Specifies a CSS selector (ID or class) that should act as the drag handle(s) for the item(s).

Type:

String

Default Value: ''

height

Specifies the widget's height.

Type:

Number

|

String

|

Function

Return Value:

Number

|

String

The widget's height.

Default Value: undefined

This option accepts a value of one of the following types:

  • Number
    The height in pixels.

  • String
    A CSS-accepted measurement of height. For example, "55px", "80%", "inherit".

  • Function
    A function returning either of the above. For example:

    JavaScript
    height: function() {
        return window.innerHeight / 1.5;
    }

itemOrientation

Notifies the widget of the items' orientation.

Type:

String

Default Value: 'vertical'
Accepted Values: 'horizontal' | 'vertical'

moveItemOnDrop

Moves an element in the HTML markup when it is dropped.

Type:

Boolean

Default Value: false

We recommend that you set this option to false if you use Angular/Vue/React. In these frameworks, the HTML markup depends on the data model and is updated automatically when you make changes.

If you use jQuery/ASP.NET, we recommend that you set moveItemsOnDrop to true because changes to the data model do not automatically update the HTML markup. If you set this option to false, you should move DOM nodes in the onReorder function.

onAdd

A function that is called when a new item is added.

Type:

Function

Function parameters:
e:

Object

Information about the event that caused the function's execution.

Object structure:
Name Type Description
component Sortable

The widget that raised the event.

dropInsideItem

Boolean

Indicates if the dragged item is dropped inside another item.

element

Element (jQuery or HTML)

The widget's container. It is an HTML Element or a jQuery Element when you use jQuery.

event

Event (jQuery or dxEvent)

The event that caused the function to execute. It is a dxEvent or a jQuery.Event when you use jQuery.

fromComponent

Sortable

|

Draggable

The instance of the item's source widget.

fromData any

Custom data associated with the source widget.

fromIndex

Number

The item's original position. If the item is dragged from another widget, the value is -1.

itemData any

The dragged item's data.

itemElement

Element (jQuery or HTML)

The container of the item being dragged. It is an HTML Element or a jQuery Element when you use jQuery.

model

Object

Model data. Available only if you use Knockout.

toComponent

Sortable

|

Draggable

The instance of the item's target widget.

toData any

Custom data associated with the target widget.

toIndex

Number

The position in which the item is placed. If the item is dragged away from the widget, the value is -1.

Default Value: null

onDisposing

A function that is executed before the widget is disposed of.

Type:

Function

Function parameters:
e:

Object

Information about the event.

Object structure:
Name Type Description
component Sortable

The widget's instance.

element

Element (jQuery or HTML)

The widget's container. It is an HTML Element or a jQuery Element when you use jQuery.

model

Object

Model data. Available only if you use Knockout.

Default Value: null

onDragChange

A function that is called when the dragged item's position in the list is changed.

Type:

Function

Function parameters:
e:

Object

Information about the event that caused the function's execution.

Object structure:
Name Type Description
cancel

Boolean

Allows you to cancel the gesture.

component Sortable

The widget that raised the event.

dropInsideItem

Boolean

Indicates if the dragged item is dropped inside another item.

element

Element (jQuery or HTML)

The widget's container. It is an HTML Element or a jQuery Element when you use jQuery.

event

Event (jQuery or dxEvent)

The event that caused the function to execute. It is a dxEvent or a jQuery.Event when you use jQuery.

fromComponent

Sortable

|

Draggable

The instance of the item's source widget.

fromData any

Custom data associated with the source widget.

fromIndex

Number

The item's original position. If the item is dragged from another widget, the value is -1.

itemData any

The dragged item's data.

itemElement

Element (jQuery or HTML)

The container of the item being dragged. It is an HTML Element or a jQuery Element when you use jQuery.

model

Object

Model data. Available only if you use Knockout.

toComponent

Sortable

|

Draggable

The instance of the item's target widget.

toData any

Custom data associated with the target widget.

toIndex

Number

The position in which the item is placed. If the item is dragged away from the widget, the value is -1.

Default Value: null

onDragEnd

A function that is called when the drag gesture is finished.

Type:

Function

Function parameters:
e:

Object

Information about the event that caused the function's execution.

Object structure:
Name Type Description
cancel

Boolean

Allows you to cancel the gesture.

component Sortable

The widget that raised the event.

dropInsideItem

Boolean

Indicates if the dragged item is dropped inside another item.

element

Element (jQuery or HTML)

The widget's container. It is an HTML Element or a jQuery Element when you use jQuery.

event

Event (jQuery or dxEvent)

The event that caused the function to execute. It is a dxEvent or a jQuery.Event when you use jQuery.

fromComponent

Sortable

|

Draggable

The instance of the item's source widget.

fromData any

Custom data associated with the source widget.

fromIndex

Number

The item's original position. If the item is dragged from another widget, the value is -1.

itemData any

The dragged item's data.

itemElement

Element (jQuery or HTML)

The container of the item being dragged. It is an HTML Element or a jQuery Element when you use jQuery.

model

Object

Model data. Available only if you use Knockout.

toComponent

Sortable

|

Draggable

The instance of the item's target widget.

toData any

Custom data associated with the target widget.

toIndex

Number

The position in which the item is placed. If the item is dragged away from the widget, the value is -1.

Default Value: null

onDragMove

A function that is called every time a draggable item is moved.

Type:

Function

Function parameters:
e:

Object

Information about the event that caused the function's execution.

Object structure:
Name Type Description
cancel

Boolean

Allows you to cancel the gesture.

component Sortable

The widget that raised the event.

dropInsideItem

Boolean

Indicates if the dragged item is dropped inside another item.

element

Element (jQuery or HTML)

The widget's container. It is an HTML Element or a jQuery Element when you use jQuery.

event

Event (jQuery or dxEvent)

The event that caused the function to execute. It is a dxEvent or a jQuery.Event when you use jQuery.

fromComponent

Sortable

|

Draggable

The instance of the item's source widget.

fromData any

Custom data associated with the source widget.

fromIndex

Number

The item's original position. If the item is dragged from another widget, the value is -1.

itemData any

The dragged item's data.

itemElement

Element (jQuery or HTML)

The container of the item being dragged. It is an HTML Element or a jQuery Element when you use jQuery.

model

Object

Model data. Available only if you use Knockout.

toComponent

Sortable

|

Draggable

The instance of the item's target widget.

toData any

Custom data associated with the target widget.

toIndex

Number

The position in which the item is placed. If the item is dragged away from the widget, the value is -1.

Default Value: null

onDragStart

A function that is called when drag gesture is initialized.

Type:

Function

Function parameters:
e:

Object

Information about the event that caused the function's execution.

Object structure:
Name Type Description
cancel

Boolean

Allows you to cancel the gesture.

component Sortable

The widget that raised the event.

element

Element (jQuery or HTML)

The widget's container. It is an HTML Element or a jQuery Element when you use jQuery.

event

Event (jQuery or dxEvent)

The event that caused the function to execute. It is a dxEvent or a jQuery.Event when you use jQuery.

fromData any

Custom data associated with the source widget.

fromIndex

Number

The item's original position. If the item is dragged from another widget, the value is -1.

itemData any

The dragged item's data.

itemElement

Element (jQuery or HTML)

The container of the item being dragged. It is an HTML Element or a jQuery Element when you use jQuery.

model

Object

Model data. Available only if you use Knockout.

Default Value: null

onInitialized

A function used in JavaScript frameworks to save the widget instance.

Type:

Function

Function parameters:
e:

Object

Information about the event.

Object structure:
Name Type Description
component Sortable

The widget's instance.

element

Element (jQuery or HTML)

The widget's container. It is an HTML Element or a jQuery Element when you use jQuery.

Default Value: null
See Also

onOptionChanged

A function that is executed after a widget option is changed.

Type:

Function

Function parameters:
e:

Object

Information about the event.

Object structure:
Name Type Description
component Sortable

The widget's instance.

fullName

String

The path to the modified option that includes all parent options.

name

String

The modified option if it belongs to the first level. Otherwise, the first-level option it is nested into.

value any

The modified option's new value.

element

Element (jQuery or HTML)

The widget's container. It is an HTML Element or a jQuery Element when you use jQuery.

model

Object

Model data. Available only if you use Knockout.

Default Value: null

onRemove

A function that is called when a draggable item is removed.

Type:

Function

Function parameters:
e:

Object

Information about the event that caused the function's execution.

Object structure:
Name Type Description
component Sortable

The widget that raised the event.

element

Element (jQuery or HTML)

The widget's container. It is an HTML Element or a jQuery Element when you use jQuery.

event

Event (jQuery or dxEvent)

The event that caused the function to execute. It is a dxEvent or a jQuery.Event when you use jQuery.

fromComponent

Sortable

|

Draggable

The instance of the item's source widget.

fromData any

Custom data associated with the source widget.

fromIndex

Number

The item's original position. If the item is dragged from another widget, the value is -1.

itemData any

The dragged item's data.

itemElement

Element (jQuery or HTML)

The container of the item being dragged. It is an HTML Element or a jQuery Element when you use jQuery.

model

Object

Model data. Available only if you use Knockout.

toComponent

Sortable

|

Draggable

The instance of the item's target widget.

toData any

Custom data associated with the target widget.

toIndex

Number

The position in which the item is placed. If the item is dragged away from the widget, the value is -1.

Default Value: null

onReorder

A function that is called when the draggable items are reordered.

Type:

Function

Function parameters:
e:

Object

Information about the event that caused the function's execution.

Object structure:
Name Type Description
component Sortable

The widget that raised the event.

dropInsideItem

Boolean

Indicates if the dragged item is dropped inside another item.

element

Element (jQuery or HTML)

The widget's container. It is an HTML Element or a jQuery Element when you use jQuery.

event

Event (jQuery or dxEvent)

The event that caused the function to execute. It is a dxEvent or a jQuery.Event when you use jQuery.

fromComponent

Sortable

|

Draggable

The instance of the item's source widget.

fromData any

Custom data associated with the source widget.

fromIndex

Number

The item's original position. If the item is dragged from another widget, the value is -1.

itemData any

The dragged item's data.

itemElement

Element (jQuery or HTML)

The container of the item being dragged. It is an HTML Element or a jQuery Element when you use jQuery.

model

Object

Model data. Available only if you use Knockout.

toComponent

Sortable

|

Draggable

The instance of the item's target widget.

toData any

Custom data associated with the target widget.

toIndex

Number

The position in which the item is placed. If the item is dragged away from the widget, the value is -1.

Default Value: null

rtlEnabled

Switches the widget to a right-to-left representation.

Type:

Boolean

Default Value: false

When this option is set to true, the widget text flows from right to left, and the layout of elements is reversed. To switch the entire application/site to the right-to-left representation, assign true to the rtlEnabled field of the object passed to the DevExpress.config(config) method.

JavaScript
DevExpress.config({
    rtlEnabled: true
});
See Also

scrollSensitivity

Specifies the distance in pixels from the edge of viewport at which scrolling should start. Applies only if autoScroll is true.

Type:

Number

Default Value: 60
See Also

scrollSpeed

Specifies the scrolling speed when dragging an item beyond the viewport. Applies only if autoScroll is true.

Type:

Number

Default Value: 30
See Also

width

Specifies the widget's width.

Type:

Number

|

String

|

Function

Return Value:

Number

|

String

The widget's width.

Default Value: undefined

This option accepts a value of one of the following types:

  • Number
    The width in pixels.

  • String
    A CSS-accepted measurement of width. For example, "55px", "80%", "auto", "inherit".

  • Function
    A function returning either of the above. For example:

    JavaScript
    width: function() {
        return window.innerWidth / 1.5;
    }