Dgrid set focus on cell
http://stackoverflow.com/questions/12216280/dgrid-set-focus-on-cell
by phusick
HTML
<link rel="stylesheet" href="http://ajax.googleapis.com/ajax/libs/dojo/1.8/dijit/themes/claro/claro.css">
<script src="https://cdn.rawgit.com/phusick/cdn/jsfiddle/amd-packages.js"></script>
<div id="grid"></div>
CSS
body {
padding: 30px;
font-family: sans-serif;
font-size: 11px;
}
#grid {
position: absolute;
top: 0;
bottom: 0;
left: 0;
right: 0;
height: auto;
}
JavaScript
require([
"dojo/_base/declare",
"dojo/_base/lang",
"dojo/aspect",
"dojo/keys",
"dojo/store/Memory",
"dgrid/Grid",
"dgrid/Selection",
"dgrid/Keyboard",
"dgrid/CellSelection",
"dgrid/editor",
"dijit/form/TextBox",
"data/dtuned",
"dojo/domReady!"
], function(
declare,
lang,
aspect,
keys,
Memory,
Grid,
Selection,
Keyboard,
CellSelection,
editor,
TextBox,
data
) {
var createEditor = function(field) {
return editor({
field: field,
editor: TextBox,
editOn: "dblclick",
autoSave: true,
//dismissOnEnter: false
});
}
var grid = new declare([Grid, Selection, Keyboard, CellSelection])({
selectionMode: "single",
columns: {
Name: createEditor("Name"),
Artist: createEditor("Artist"),
Genre: createEditor("Genre")
}
}, "grid");
grid.renderArray(data.items);
aspect.after(grid, "edit", function(promise, cellNode) { //return;
if(promise === null) return;
promise.then(function(widget) {
if (!widget._editorKeypressHandle) {
widget._editorKeypressHandle = widget.on("keypress", function(e) {
for (var rowId in grid.selection) { break;}
for (var columnId in grid.selection[rowId]) { break;}
if(e.charOrCode == keys.TAB) {
e.preventDefault();
var cellEdited = grid.cell(rowId, columnId);
var cellToEdit = grid.right(cellEdited, 1);
if(cellEdited.row.id == cellToEdit.row.id
&& cellEdited.column.id == cellToEdit.column.id
) {
...