Column Reordering
Grid columns can be dragged & dropped.
| Date | Name | Continent | Browser | OS | Visits |
|---|---|---|---|---|---|
| 01/06/2026 | Lloyd Gleichner | North America | Safari | Mac OS | 36 |
| 03/04/2026 | Thad Dicki | Africa | Internet Explorer | Ubuntu | 99 |
| 01/20/2026 | Alanis Breitenberg | North America | Safari | iOS | 43 |
| 03/05/2026 | Ryann Gleason | South America | Firefox | iOS | 62 |
| 12/29/2025 | Mallory Glover | Asia | Internet Explorer | Mac OS | 16 |
| 01/11/2026 | Susanna Kutch | Australia | Edge | Windows | 67 |
| 02/20/2026 | Maddison Zemlak | North America | Edge | Android | 24 |
| 01/08/2026 | Quentin Kessler | South America | Opera | Windows | 8 |
| 02/13/2026 | Kaia Wilkinson | Europe | Firefox | iOS | 42 |
| 01/16/2026 | Rhea Larkin | Australia | Internet Explorer | Android | 6 |
| 01/01/2026 | Kaya Bergstrom | Africa | Opera | Ubuntu | 23 |
| 03/10/2026 | Esther Farrell | Africa | Safari | iOS | 17 |
| 01/02/2026 | Robbie Homenick | Europe | Internet Explorer | Mac OS | 16 |
| 01/09/2026 | Lamont Spinka | Asia | Internet Explorer | Android | 50 |
| 12/17/2025 | Francisca Veum | North America | Safari | iOS | 44 |
| 03/23/2026 | Alexandrine Walter | Asia | Firefox | Android | 85 |
| 02/07/2026 | Patricia Veum | North America | Edge | Mac OS | 34 |
| 12/25/2025 | Dandre Lind | Australia | Safari | Ubuntu | 64 |
| 03/25/2026 | Sarai Dach | South America | Edge | Mac OS | 36 |
| 02/24/2026 | Beverly Botsford | Australia | Opera | Mac OS | 25 |
| 02/08/2026 | Destiney Rogahn | Australia | Opera | Android | 6 |
| 01/11/2026 | Lulu Anderson | North America | Internet Explorer | iOS | 57 |
| 01/28/2026 | Adela Jakubowski | South America | Chrome | iOS | 7 |
| 02/05/2026 | Carleton Mraz | Asia | Chrome | Ubuntu | 49 |
| 01/05/2026 | Thad Spinka | Europe | Opera | Android | 13 |
| 01/25/2026 | Corbin Larson | Australia | Edge | Ubuntu | 10 |
| 03/14/2026 | Reginald Goodwin | North America | Internet Explorer | Android | 15 |
| 01/23/2026 | Amelie Krajcik | Africa | Firefox | Android | 43 |
| 12/22/2025 | Mckenzie Hand | Australia | Firefox | iOS | 99 |
| 01/20/2026 | Jazlyn Sporer | Asia | Safari | Mac OS | 69 |
| 03/19/2026 | Jonathan Moore | Australia | Safari | Ubuntu | 71 |
| 02/13/2026 | Michelle Jacobs | South America | Safari | Mac OS | 70 |
| 01/21/2026 | Onie Bradtke | North America | Firefox | Android | 91 |
| 02/28/2026 | Gardner Heller | South America | Safari | Mac OS | 66 |
| 01/14/2026 | Kieran Borer | South America | Safari | Windows | 90 |
| 01/04/2026 | Heath Hauck | North America | Opera | Ubuntu | 9 |
| 02/01/2026 | Mertie Pacocha | Europe | Firefox | Mac OS | 46 |
| 03/21/2026 | Verona Sporer | Asia | Opera | Ubuntu | 10 |
| 12/24/2025 | Ada Ondricka | Antarctica | Internet Explorer | Android | 26 |
| 01/19/2026 | Ethel Gutmann | North America | Firefox | iOS | 82 |
| 02/03/2026 | Kaitlyn Becker | South America | Firefox | Mac OS | 15 |
| 12/27/2025 | Michele Greenfelder | Asia | Firefox | Windows | 95 |
| 02/01/2026 | Caitlyn Ebert | Africa | Opera | Ubuntu | 55 |
| 12/31/2025 | Adrian Reichert | Europe | Opera | Android | 32 |
| 01/31/2026 | Kamron Muller | Australia | Safari | Android | 18 |
| 12/19/2025 | Catalina Green | Europe | Internet Explorer | Windows | 31 |
| 03/21/2026 | Justina Grady | Asia | Opera | Mac OS | 18 |
| 12/18/2025 | Israel Macejkovic | North America | Firefox | Mac OS | 97 |
| 02/04/2026 | Jeanne Hoppe | Australia | Internet Explorer | Ubuntu | 60 |
| 03/11/2026 | Michael Gusikowski | Europe | Safari | Ubuntu | 73 |
| 03/12/2026 | Malvina Dooley | South America | Safari | Ubuntu | 1 |
| 01/31/2026 | Alexandrine Huel | Europe | Safari | iOS | 51 |
| 03/09/2026 | Lillian Mante | Asia | Safari | Android | 22 |
| 03/11/2026 | Emanuel Klein | North America | Chrome | Android | 96 |
| 01/14/2026 | Eliseo Lubowitz | South America | Chrome | Android | 12 |
| 02/20/2026 | Chris Barton | South America | Firefox | iOS | 87 |
| 01/16/2026 | Andrew Fadel | South America | Internet Explorer | Mac OS | 43 |
| 03/14/2026 | Mavis Lowe | Australia | Edge | Mac OS | 75 |
| 03/04/2026 | Reba Pouros | Asia | Safari | iOS | 12 |
| 01/16/2026 | Elisha Jacobi | Africa | Internet Explorer | Mac OS | 82 |
| Date | Name | Continent | Browser | OS | Visits |
|---|
To allow dragging grid column around, set draggable to true on each column.
There are two parts required to implement column reordering. The first part is dynamic column generation. The onGetColumns callback method
is invoked whenever columnParams change (in this example it's bound to $page.columnOrder) and it should return
the list of columns to be displayed. The list should be in the same format as when assigned to the columns property.
It's important to set a unique key for each column so that grid can correctly associate column meta data (such as column width)
and restore it on each configuration change.
The other part is implementing column drag & drop using onColumnDropTest and onColumnDrop callbacks.
The onColumnDropTest checks if the dragged object contains information required to make a successful column drop.
The logic for changing columns is implemented in onColumnDrop. In this example, columnOrder
and unusedColumns are modified and after that the grid automatically reflects the updated configuration.
<Grid records-bind="$page.records" mod="fixed-layout" scrollable buffered style="height: 500px;" lockColumnWidths columnParams-bind="$page.columnOrder" onGetColumns={(columnOrder) => columnOrder.map((key) => allColumns.find((c) => c.key == key))} onColumnDropTest={(e, instance) => (e.source.type == "grid-column" && e.source.gridInstance == instance) || e.source?.data.type == "unused-column" } onColumnDrop={(e, { store }) => { let key = e.source.type == "grid-column" ? e.source.column.key : e.source.data.key; let { index } = e.target; let columnOrder = store.get("$page.columnOrder"); let at = columnOrder.indexOf(key); let result = columnOrder.filter((c) => c != key); if (at >= 0 && at < index) index--; result = insertElement(result, index, key); store.set("$page.columnOrder", result); store.update("$page.unusedColumns", (unused) => unused.filter((c) => c != key)); }} />