JSFiddle - React, Tailwind, and code Playground
by keemor
HTML
<link rel="stylesheet" href="http://ajax.googleapis.com/ajax/libs/dojo/1.6/dijit/themes/claro/claro.css">
<link rel="stylesheet" href="http://ajax.googleapis.com/ajax/libs/dojo/1.6/dojox/grid/resources/claroGrid.css">
<div id="grid1"></div>
<div id="grid2"></div>
JavaScript
dojo.require("dojo.data.ObjectStore");
dojo.require("dojox.grid.DataGrid");
dojo.require("dojo.store.Memory");
dojo.require("dojo.store.util.SimpleQueryEngine");
dojo.ready(function() {
var store1 = {
queryEngine: dojo.store.util.SimpleQueryEngine
};
store1.get = function(id) {
// Need to parse the string we get from backend:
// ...if you've got localStorage, you've got JSON
return JSON.parse(localStorage.getItem(id));
};
store1.put = function(object, options) {
// Get the id, wherever it comes from
var id = options && options.id || object.id;
// Stringify data -- remember, StorageJS is a key/value backend wrapper.
//var data = dojo.toJson(object);
// Now save the data away
localStorage.setItem(id, JSON.stringify(object));
};
store1.query = function(query, options) {
var i= localStorage.length,
item,
data = [];
// And convert it into a format that the
// queryEngine can work with
var data = [];
while (i--) {
console.log(localStorage.key(i), i);
data.unshift(JSON.parse(localStorage[localStorage.key(i)]));
}
console.log(data);
// Now call the queryEngine on the data
var results = this.queryEngine(query, options)(data);
// And return the result, after it has been
// enhanced.
return dojo.store.util.QueryResults(results);
}
var someData = [
{
id: 1,
name: "One"},
{
id: 2,
name: "Two"}
];
var store2 = new dojo.store.Memory({
data: someData
});
/*
store1.put({
id: "1",
name: "one"
});
store1.put({
id: "2",
name: "two"
});
*/
grid1 = new dojox.grid.DataGrid({
store: dojo.data.ObjectStore({
objectStore: store1
}),
structure: [
...