Skip to main content

Controlling the grid from parent

You can control the grid from a parent component using a ref:

import {
DataSheetGrid,
DataSheetGridRef,
} from 'react-datasheet-grid'

function App() {
const ref = useRef<DataSheetGridRef>(null)

return <DataSheetGrid ref={ref} />
}

You can then use that ref to control the grid from any callback.

function App() {
const ref = useRef<DataSheetGridRef>(null)

useEffect(() => {
ref.current?.setSelection({
min: { col: 'firstName', row: 0 },
max: { col: 2, row: 3 },
})
}, [])

return (
<>
<DataSheetGrid ref={ref} />
<button onClick={() => ref.current?.setActiveCell({ col: 1, row: 0 })} />
</>
)
}

Reference

See the exhaustive list of properties available.

Example

Hover an element to trigger it:

ref.current?.setActiveCell({ col: 1, row: 3 })ref.current?.setActiveCell({ col: 'lastName', row: 1 })ref.current?.setSelection({ min: { col: 'active', row: 1 }, max: { col: 1, row: 4 }})ref.current?.setSelection(null)
Active
First name
Last name
Number
1
2
3
4
5
6
7
8
9
10
rows