JavaScript/jQuery Sortable Options
This section describes options that configure Sortable widget content, behavior, and appearance.
See Also
- Configure a Widget: Angular | Vue | React | jQuery | AngularJS | Knockout | ASP.NET MVC 5 | ASP.NET Core
allowDropInsideItem
Allows a user to drop an item inside another item.
allowReordering
Allows a user to reorder sortable items.
This option limits row reordering to the UI and does not affect the data source. You should also handle the effects of the drag and drop to the data source in code. If users reorder items inside a single component, implement the onReorder handler.
To configure drag and drop between components, follow the instructions from the group topic.
autoScroll
Enables automatic scrolling while dragging an item beyond the viewport.
See Also
boundary
Specifies a DOM element that limits the dragging area.
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.
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")
.
dragComponent
An alias for the dragTemplate property specified in React. Accepts a custom component. Refer to Using a Custom Component for more information.
dragRender
An alias for the dragTemplate property specified in React. Accepts a rendering function. Refer to Using a Rendering Function for more information.
dragTemplate
Specifies custom markup to be shown instead of the item being dragged.
Name | Type | Description |
---|---|---|
fromIndex |
The item's original position. |
|
itemData | any |
The item's data. |
itemElement |
The container of the item being dragged. It is an HTML Element or a jQuery Element when you use jQuery. |
dropFeedbackMode
Specifies how to highlight the item's drop position.
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.
jQuery
$(function(){ $("#sortableContainer").dxSortable({ // ... elementAttr: { id: "elementId", class: "class-name" } }); });
Angular
<dx-sortable ... [elementAttr]="{ id: 'elementId', class: 'class-name' }"> </dx-sortable>
import { DxSortableModule } from "devextreme-angular"; // ... export class AppComponent { // ... } @NgModule({ imports: [ // ... DxSortableModule ], // ... })
Vue
<template> <DxSortable ... :element-attr="sortableAttributes"> </DxSortable> </template> <script> import DxSortable from 'devextreme-vue/sortable'; export default { components: { DxSortable }, data() { return { sortableAttributes: { id: 'elementId', class: 'class-name' } } } } </script>
React
import React from 'react'; import Sortable from 'devextreme-react/sortable'; class App extends React.Component { sortableAttributes = { id: 'elementId', class: 'class-name' } render() { return ( <Sortable ... elementAttr={this.sortableAttributes}> </Sortable> ); } } export default App;
group
Allows you to group several widgets, so that users can drag and drop items between them.
Set this option to identical values for the widgets you want to collect into a single group. This allows users to drag and drop items between components, but only in the UI. To handle drag and drop in code, implement the onAdd and onRemove handlers. Both these handlers are executed simultaneously when an item is dropped to the target component, but onAdd is executed in the target component, while onRemove is executed in the source component.
handle
Specifies a CSS selector (ID or class) that should act as the drag handle(s) for the item(s).
height
Specifies the widget's height.
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:JavaScriptheight: function() { return window.innerHeight / 1.5; }
moveItemOnDrop
Moves an element in the HTML markup when it is dropped.
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.
Information about the event that caused the function's execution.
Name | Type | Description |
---|---|---|
component | Sortable |
The widget that raised the event. |
dropInsideItem |
Indicates if the dragged item is dropped inside another item. |
|
element |
The widget's container. It is an HTML Element or a jQuery Element when you use jQuery. |
|
event | Event (jQuery or EventObject) |
The event that caused the function to execute. It is a dxEvent or a jQuery.Event when you use jQuery. |
fromComponent | | |
The instance of the item's source widget. |
fromData | any |
Custom data associated with the source widget. |
fromIndex |
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 |
The container of the item being dragged. It is an HTML Element or a jQuery Element when you use jQuery. |
|
model |
Model data. Available only if you use Knockout. |
|
toComponent | | |
The instance of the item's target widget. |
toData | any |
Custom data associated with the target widget. |
toIndex |
The position in which the item is placed. If the item is dragged away from the widget, the value is -1. |
onDisposing
A function that is executed before the widget is disposed of.
Information about the event.
Name | Type | Description |
---|---|---|
component | Sortable |
The widget's instance. |
element |
The widget's container. It is an HTML Element or a jQuery Element when you use jQuery. |
|
model |
Model data. Available only if you use Knockout. |
onDragChange
A function that is called when the dragged item's position in the list is changed.
Information about the event that caused the function's execution.
Name | Type | Description |
---|---|---|
cancel |
Allows you to cancel the gesture. |
|
component | Sortable |
The widget that raised the event. |
dropInsideItem |
Indicates if the dragged item is dropped inside another item. |
|
element |
The widget's container. It is an HTML Element or a jQuery Element when you use jQuery. |
|
event | Event (jQuery or EventObject) |
The event that caused the function to execute. It is a dxEvent or a jQuery.Event when you use jQuery. |
fromComponent | | |
The instance of the item's source widget. |
fromData | any |
Custom data associated with the source widget. |
fromIndex |
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 |
The container of the item being dragged. It is an HTML Element or a jQuery Element when you use jQuery. |
|
model |
Model data. Available only if you use Knockout. |
|
toComponent | | |
The instance of the item's target widget. |
toData | any |
Custom data associated with the target widget. |
toIndex |
The position in which the item is placed. If the item is dragged away from the widget, the value is -1. |
onDragEnd
A function that is called when the drag gesture is finished.
Information about the event that caused the function's execution.
Name | Type | Description |
---|---|---|
cancel |
Allows you to cancel the gesture. |
|
component | Sortable |
The widget that raised the event. |
dropInsideItem |
Indicates if the dragged item is dropped inside another item. |
|
element |
The widget's container. It is an HTML Element or a jQuery Element when you use jQuery. |
|
event | Event (jQuery or EventObject) |
The event that caused the function to execute. It is a dxEvent or a jQuery.Event when you use jQuery. |
fromComponent | | |
The instance of the item's source widget. |
fromData | any |
Custom data associated with the source widget. |
fromIndex |
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 |
The container of the item being dragged. It is an HTML Element or a jQuery Element when you use jQuery. |
|
model |
Model data. Available only if you use Knockout. |
|
toComponent | | |
The instance of the item's target widget. |
toData | any |
Custom data associated with the target widget. |
toIndex |
The position in which the item is placed. If the item is dragged away from the widget, the value is -1. |
onDragMove
A function that is called every time a draggable item is moved.
Information about the event that caused the function's execution.
Name | Type | Description |
---|---|---|
cancel |
Allows you to cancel the gesture. |
|
component | Sortable |
The widget that raised the event. |
dropInsideItem |
Indicates if the dragged item is dropped inside another item. |
|
element |
The widget's container. It is an HTML Element or a jQuery Element when you use jQuery. |
|
event | Event (jQuery or EventObject) |
The event that caused the function to execute. It is a dxEvent or a jQuery.Event when you use jQuery. |
fromComponent | | |
The instance of the item's source widget. |
fromData | any |
Custom data associated with the source widget. |
fromIndex |
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 |
The container of the item being dragged. It is an HTML Element or a jQuery Element when you use jQuery. |
|
model |
Model data. Available only if you use Knockout. |
|
toComponent | | |
The instance of the item's target widget. |
toData | any |
Custom data associated with the target widget. |
toIndex |
The position in which the item is placed. If the item is dragged away from the widget, the value is -1. |
onDragStart
A function that is called when drag gesture is initialized.
Information about the event that caused the function's execution.
Name | Type | Description |
---|---|---|
cancel |
Allows you to cancel the gesture. |
|
component | Sortable |
The widget that raised the event. |
element |
The widget's container. It is an HTML Element or a jQuery Element when you use jQuery. |
|
event | Event (jQuery or EventObject) |
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 |
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 |
The container of the item being dragged. It is an HTML Element or a jQuery Element when you use jQuery. |
|
model |
Model data. Available only if you use Knockout. |
onInitialized
A function used in JavaScript frameworks to save the widget instance.
Information about the event.
Name | Type | Description |
---|---|---|
component | Sortable |
The widget's instance. |
element |
The widget's container. It is an HTML Element or a jQuery Element when you use jQuery. |
onOptionChanged
A function that is executed after a widget option is changed.
Information about the event.
Name | Type | Description |
---|---|---|
model |
Model data. Available only if you use Knockout. |
|
fullName |
The path to the modified option that includes all parent options. |
|
element |
The widget's container. It is an HTML Element or a jQuery Element when you use jQuery. |
|
component | Sortable |
The widget's instance. |
name |
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. |
onRemove
A function that is called when a draggable item is removed.
Information about the event that caused the function's execution.
Name | Type | Description |
---|---|---|
component | Sortable |
The widget that raised the event. |
element |
The widget's container. It is an HTML Element or a jQuery Element when you use jQuery. |
|
event | Event (jQuery or EventObject) |
The event that caused the function to execute. It is a dxEvent or a jQuery.Event when you use jQuery. |
fromComponent | | |
The instance of the item's source widget. |
fromData | any |
Custom data associated with the source widget. |
fromIndex |
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 |
The container of the item being dragged. It is an HTML Element or a jQuery Element when you use jQuery. |
|
model |
Model data. Available only if you use Knockout. |
|
toComponent | | |
The instance of the item's target widget. |
toData | any |
Custom data associated with the target widget. |
toIndex |
The position in which the item is placed. If the item is dragged away from the widget, the value is -1. |
onReorder
A function that is called when the draggable items are reordered.
Information about the event that caused the function's execution.
Name | Type | Description |
---|---|---|
component | Sortable |
The widget that raised the event. |
dropInsideItem |
Indicates if the dragged item is dropped inside another item. |
|
element |
The widget's container. It is an HTML Element or a jQuery Element when you use jQuery. |
|
event | Event (jQuery or EventObject) |
The event that caused the function to execute. It is a dxEvent or a jQuery.Event when you use jQuery. |
fromComponent | | |
The instance of the item's source widget. |
fromData | any |
Custom data associated with the source widget. |
fromIndex |
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 |
The container of the item being dragged. It is an HTML Element or a jQuery Element when you use jQuery. |
|
model |
Model data. Available only if you use Knockout. |
|
promise |
Assign a Promise to this field to perform an asynchronous operation. |
|
toComponent | | |
The instance of the item's target widget. |
toData | any |
Custom data associated with the target widget. |
toIndex |
The position in which the item is placed. If the item is dragged away from the widget, the value is -1. |
rtlEnabled
Switches the widget to a right-to-left representation.
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.
DevExpress.config({ rtlEnabled: true });
See Also
- Right-to-Left Support Demo: DataGrid | Navigation Widgets | Editors
scrollSensitivity
Specifies the distance in pixels from the edge of viewport at which scrolling should start. Applies only if autoScroll is true.
See Also
scrollSpeed
Specifies the scrolling speed when dragging an item beyond the viewport. Applies only if autoScroll is true.
See Also
width
Specifies the widget's width.
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:JavaScriptwidth: function() { return window.innerWidth / 1.5; }
If you have technical questions, please create a support ticket in the DevExpress Support Center.