I am using KendoUi dynamic columns into grid using angular and found reorder did not work properly if there are hidden fields. Reorder even also gave wrong current index of field chose to reorder.
Then I invested sometime to figure out the solution , here's is the fix:
Change a little in ColumnReorderEvent find current index of column.
public onReorder(e: any): void {
/"
const reorderedColumn = this.grid2Settings.columnsConfig.splice(e.oldIndex, 1);
*/
let currentIndex:any=this.gridSettings.columnsConfig.findindex(col => col.field === e.column.field)
const reorderedColumn = this.grid2Settings.columnsConfig.splice(currentIndex, 1);
this.grid2Settings.columnsConfig.splice(e.newIndex, 0, ...reorderedColumn);
this.saveGrid2();
}
Hope it helps.