DataGrid

Tabla avanzada con edición inline, selección de filas, visibilidad de columnas y exportación CSV. Para cuando necesitas más que un DataTable simple.

pnpm dlx nuvo-ui add data-grid

Demo completo

Haz click en una celda editable (Nombre, Email, Rol) para editar inline. Selecciona filas con el checkbox.

NombreEmailRolScoreEstado
Activo
Activo
Inactivo
Activo
Página 1 de 2
const [data, setData] = React.useState(initialUsers)

<DataGrid
  data={data}
  columns={[
    { key: "name",  label: "Nombre", sortable: true, editable: true },
    { key: "email", label: "Email",  sortable: true, editable: true },
    { key: "role",  label: "Rol",    editable: true,
      type: "select", options: ["Admin", "Editor", "Viewer"] },
    { key: "status", label: "Estado",
      render: (v) => <Badge variant={v === "active" ? "success" : "muted"}>{v}</Badge> },
  ]}
  idKey="id"
  selectable
  searchable
  exportable
  paginate
  pageSize={10}
  onCellEdit={(id, key, value) => {
    setData(prev => prev.map(r => r.id === id ? { ...r, [key]: value } : r))
  }}
  onRowSelect={(rows) => setSelected(rows)}
/>
Nota: Las celdas con editable: true muestran un cursor pointer. Click para editar, Enter para confirmar, Escape para cancelar.

Diferencias con DataTable

FeatureDataTableDataGrid
API de 3 capas (JSON/render/compound)
Edición inline de celdas
Selección de filas con checkbox
Visibilidad de columnas
Exportar CSV
Sorting, búsqueda, paginación
Skeleton de carga

Props

PropTipoDefaultDescripción
dataT[]Array de datos
columnsDataGridColumnDef<T>[]Definición de columnas
idKeystring"id"Campo que identifica cada fila
selectablebooleanfalseHabilita columna de checkboxes
searchablebooleanfalseBarra de búsqueda global
exportablebooleanfalseBotón de exportar CSV
paginatebooleanfalseControles de paginación
onCellEdit(id, key, value) => voidCallback al editar una celda
onRowSelect(rows: T[]) => voidCallback al seleccionar filas