The columns can be reordered using drag and drop or with Columns().move() API.

The draggable and droppable columns can be individually set during initialization by nodrag and nodrop options, and changed at runtime in the columnDrag event.

In this example the columns nested under Revenues are all marked as not draggable and droppable columns.

During Drag n Drop or move columns API, events are fired in this sequence: beforeColMove => colMove