Dojo dgrid: (Pre) Select row on render
http://stackoverflow.com/questions/14757504/dojo-dgrid-pre-select-row-on-render
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="filter-wrapper">
<input
id="filter"
data-dojo-type="dijit/form/TextBox"
data-dojo-props="
placeHolder: 'filter by name',
intermediateChanges:true
"
style="padding:2px;margin:3px;width:20em;"
/>
</div>
<div id="grid"></div>
CSS
html, body {
height: 100%;
}
body {
font-family: sans-serif;
font-size: 11px;
}
#filter-wrapper {
background-color: lightyellow;
font-size: 14px;
}
#grid {
position: absolute;
top: 32px;
bottom: 0;
left: 0;
right: 0;
height: auto;
}
JavaScript
require([
"dojo/ready",
"dojo/_base/declare",
"dojo/store/Memory",
"dgrid/OnDemandGrid",
"dgrid/Selection",
"data/dtuned",
"dijit/registry",
"dgrid/extensions/Pagination",
"dgrid/editor",
"dijit/form/TextBox",
"dojo/domReady!"
], function(
ready,
declare,
Memory,
OnDemandGrid,
Selection,
data,
registry,
Pagination,
editor
) {
ready(function() {
var timeoutId;
var filter = registry.byId("filter");
var store = new Memory({ data: data, idProperty: "Key" });
var filterQuery = function(item, index, items) {
var filterString = filter ? filter.get("value") + "" : "";
// early exists
if (filterString.length < 2) return true;
if (!item.Name) return false;
var name = (item.Name + "").toLowerCase();
if (~name.indexOf(filterString.toLowerCase())) { return true;}
return false;
}
var Grid = declare([OnDemandGrid, Selection, Pagination]);
var grid = new Grid({
store: store,
selectionMode: "multiple",
query: filterQuery,
columns: {
Test: editor({
label: '',
field: 'selected',
editor: 'checkbox'
}),
Name: {
get: function(obj) {
// (pre)select rows if year < 2000
if(parseInt(obj.Year) < 2000) {
var grid = this.grid;
var row = grid.row(obj.Key);
grid.select(row);
}
return obj.Name;
}
}
}
}, "grid");
var checkbox = document.createElement("input");
checkbox.setAttribute("type", "checkbox");
checkbox.setAttribute("tabindex", "0");
...