Cell Editing
To setup cell editing set the cellEditable flag on the grid
and specify editor widget configurations for all editable columns.
If some of the cells should not be editable, disable editing using the editable property.
Use the onCellEdited callback to react on changes, e.g. update the record in the database.
For grids with many records it is recommended to use buffering for optimal performance.
| # | Name | Continent | Browser | OS | Visits |
|---|---|---|---|---|---|
| 0 | Halle Blick | Africa | Safari | iOS | 40 |
| 1 | Moises Moore | South America | Internet Explorer | Ubuntu | 54 |
| 2 | Antone Volkman | South America | Firefox | iOS | 16 |
| 3 | Cordia Hickle | South America | Opera | Ubuntu | 48 |
| 4 | Otto Wisozk | Asia | Firefox | Ubuntu | 38 |
| 5 | Sarai Johnston | South America | Opera | Ubuntu | 97 |
| 6 | Sabina Gutkowski | South America | Safari | Ubuntu | 64 |
| 7 | Renee Roberts | Australia | Internet Explorer | Android | 6 |
| 8 | Zella Klocko | Asia | Opera | Ubuntu | 40 |
| 9 | Vivianne Bartoletti | North America | Firefox | Ubuntu | 14 |
| 10 | Addison Zieme | South America | Opera | Android | 12 |
| 11 | Jayme Gulgowski | Asia | Safari | Android | 67 |
| 12 | Samantha Kirlin | Antarctica | Internet Explorer | Ubuntu | 11 |
| 13 | Willie Moore | South America | Internet Explorer | Android | 12 |
| 14 | Kenneth Dibbert | Australia | Firefox | Mac OS | 31 |
| 15 | Ford Konopelski | Africa | Firefox | Mac OS | 23 |
| 16 | Tyra Runte | Africa | Firefox | Windows | 26 |
| 17 | Alivia Douglas | South America | Opera | Windows | 64 |
| 18 | Bridget Schimmel | Africa | Firefox | Mac OS | 98 |
| 19 | Kelley Beier | Asia | Firefox | Mac OS | 60 |
| 20 | Davon Jones | North America | Firefox | Mac OS | 15 |
| 21 | Douglas Ziemann | Africa | Internet Explorer | Mac OS | 60 |
| 22 | Onie Greenfelder | North America | Internet Explorer | Windows | 94 |
| 23 | Tom Gislason | North America | Opera | Android | 100 |
| 24 | Krystina Pollich | South America | Firefox | Android | 64 |
| 25 | Yvonne Nitzsche | Australia | Safari | Windows | 53 |
| 26 | Darrion Krajcik | Africa | Internet Explorer | Ubuntu | 35 |
| 27 | Pierre Lueilwitz | Antarctica | Firefox | Windows | 93 |
| 28 | Eduardo Armstrong | Antarctica | Firefox | Ubuntu | 99 |
| 29 | Skylar Morissette | North America | Firefox | Android | 5 |
| 30 | Orie Barrows | South America | Firefox | Mac OS | 47 |
| 31 | Adan Lang | Asia | Internet Explorer | Windows | 54 |
| 32 | Burdette Reichert | Asia | Opera | Mac OS | 58 |
| 33 | Kenyon Morissette | Asia | Internet Explorer | Windows | 85 |
| 34 | Sidney Nader | Asia | Internet Explorer | Ubuntu | 36 |
| 35 | Matt Robel | South America | Safari | iOS | 15 |
| 36 | Carmine Hackett | Africa | Edge | Mac OS | 51 |
| 37 | Joesph Schroeder | Asia | Chrome | Android | 55 |
| 38 | Margret Wilderman | North America | Opera | Windows | 19 |
| 39 | Bridie Marvin | North America | Safari | Android | 72 |
| 40 | Everett Leffler | Asia | Firefox | Ubuntu | 73 |
| 41 | Leila Conroy | North America | Chrome | Ubuntu | 88 |
| 42 | Ignacio Stamm | South America | Opera | Mac OS | 90 |
| 43 | Pearl Spencer | South America | Opera | iOS | 25 |
| 44 | Domingo Conroy | Australia | Edge | iOS | 80 |
| 45 | Enos Windler | North America | Internet Explorer | iOS | 58 |
| 46 | Joanny Heaney | South America | Firefox | iOS | 96 |
| 47 | Zechariah Mosciski | Europe | Opera | Ubuntu | 44 |
| 48 | Cecile Ratke | Australia | Internet Explorer | Mac OS | 12 |
| 49 | Halie Pfeffer | Antarctica | Safari | Android | 70 |
| 50 | Devin Gusikowski | South America | Opera | Mac OS | 10 |
| 51 | Gay Collins | Europe | Internet Explorer | Windows | 38 |
| 52 | Chelsie Abernathy | South America | Safari | Mac OS | 96 |
| 53 | Lenore Terry | South America | Firefox | Android | 34 |
| 54 | Cyrus Lynch | Asia | Safari | Mac OS | 19 |
| 55 | Wilburn Walker | Australia | Safari | Mac OS | 76 |
| 56 | Bruce Emmerich | Australia | Opera | Mac OS | 81 |
| 57 | Herman Quigley | Australia | Chrome | Windows | 61 |
| 58 | Tracey Nikolaus | South America | Safari | Mac OS | 11 |
| 59 | Ressie Kshlerin | South America | Opera | Android | 41 |
| # | Name | Continent | Browser | OS | Visits |
|---|
Index
<Grid
cellEditable
onCellEdited={(change, record) => {
console.log(change, record);
}}
records-bind="$page.records"
scrollable
buffered
style="height: 600px;"
lockColumnWidths
cached
columns={
[
{header: "#", field: "index", sortable: true, value: {bind: "$index"}},
{
header: "Name",
field: "fullName",
sortable: true,
editor: <cx>
<TextField
value-bind="$record.fullName"
style="position: absolute; width: 100%; height: 100%; top: 0;"
required
visited
/>
</cx>
},
{
header: "Continent", field: "continent", sortable: true,
editor: <cx>
<Select
value-bind="$record.continent"
style="position: absolute; width: 100%; height: 100%; top: 0;"
required
>
<option value="Africa">Africa</option>
<option value="Antarctica">Antarctica</option>
<option value="Asia">Asia</option>
<option value="Australia">Australia</option>
<option value="Europe">Europe</option>
<option value="North America">North America</option>
<option value="South America">South America</option>
</Select>
</cx>
},
{
header: "Browser", field: "browser", sortable: true,
editor: <cx>
<LookupField
value-bind="$record.browser"
style="position: absolute; width: 100%; height: 100%; top: 0;"
required
autoOpen
options={[
{ id: "Opera", text: "Opera" },
{ id: "Safari", text: "Safari" },
{ id: "Chrome", text: "Chrome" },
{ id: "Firefox", text: "Firefox" },
{ id: "Edge", text: "Edge" },
{ id: "Internet Explorer", text: "Internet Explorer" }
]}
/>
</cx>
},
{
header: "OS", field: "os", sortable: true,
editor: <cx>
<LookupField
value-bind="$record.os"
style="position: absolute; width: 100%; height: 100%; top: 0;"
required
autoOpen
options={[
{ id: "Mac OS", text: "Mac OS" },
{ id: "iOS", text: "iOS" },
{ id: "Android", text: "Android" },
{ id: "Windows", text: "Windows" },
{ id: "Ubuntu", text: "Ubuntu" },
]}
/>
</cx>
},
{
header: "Visits",
field: "visits",
sortable: true,
align: "right",
editor: <cx>
<NumberField
value-bind="$record.visits"
style="position: absolute; width: 100%; height: 100%; top: 0;"
required
visited
inputStyle="text-align: right"
/>
</cx>
}
]
}
/>