# CellSelection The CellSelection mixin extends upon the functionality of the [Selection](Selection.md) mixin to provide selection at the cell level instead. ```js require([ "dojo/_base/declare", "dgrid/OnDemandGrid", "dgrid/CellSelection" ], function(declare, OnDemandGrid, CellSelection){ var grid = new (declare([OnDemandGrid, CellSelection]))({ selectionMode: "single", // ... }); }); ``` ## Differences from Selection mixin * The `selection` object stores a nested hash, where the outer hash is keyed by item ID and the inner hashes are keyed by column ID. * The `dgrid-select` and `dgrid-deselect` events still fire, but include a `cells` property containing an array of cell objects, rather than a `rows` property. * Whereas Selection's `select`, `deselect`, and `isSelected` methods look up the passed argument via List's `row` method, CellSelection looks it up via Grid's `cell` method. * The `allowSelect` method is passed a cell object instead of a row object.