Dojo Enhanced Grid
HTML
<div id="gridDiv"></div>
CSS
@import "http://dojotoolkit.org/reference-guide/1.8/_static/js/dojo/resources/dojo.css";
@import "http://dojotoolkit.org/reference-guide/1.8/_static/js/dijit/themes/claro/claro.css";
@import "http://dojotoolkit.org/reference-guide/1.8/_static/js/dojox/grid/enhanced/resources/claro/EnhancedGrid.css";
@import "http://dojotoolkit.org/reference-guide/1.8/_static/js/dojox/grid/enhanced/resources/EnhancedGrid_rtl.css";
/*Grid need a explicit width/height by default*/
#grid {
width: 43em;
height: 300px;
}
JavaScript
dojo.require("dojox.grid.EnhancedGrid");
dojo.require("dojox.grid.enhanced.plugins.Pagination");
dojo.require("dojo.data.ItemFileWriteStore");
dojo.ready(function(){
/*set up data store*/
var data = {
identifier: 'id',
items: []
};
var data_list = [
{ col1: "normal", col2: false, col3: 'A String Column1', col4: 29.91},
{ col1: "important", col2: false, col3: 'B String Column2', col4: 9.33},
{ col1: "important", col2: false, col3: 'C String Column3', col4: 19.34}
];
var rows = 200;
for(var i=0, l=data_list.length; i<rows; i++){
data.items.push(dojo.mixin({ id: i+1 }, data_list[i%l]));
}
var store = new dojo.data.ItemFileWriteStore({data: data});
/*set up layout*/
var layout = [[
{name: 'ID', field: 'id'},
{name: 'Boolean', field: 'col2'},
{name: 'String', field: 'col3', width: "230px"},
{name: 'Number', field: 'col4'}
]];
/*create a new grid:*/
var grid = new dojox.grid.EnhancedGrid({
id: 'grid',
store: store,
structure: layout,
rowSelector: '20px',
// NEW NEW NEW NEW NEW
onClick:function(event) {
alert(this.pagination.plugin.pageSize);
},
// NEW NEW NEW NEW NEW
plugins: {
pagination: {
pageSizes: ["25", "50", "100", "All"],
description: true,
sizeSwitch: true,
pageStepper: true,
gotoButton: true,
/*page step to be displayed*/
maxPageStep: 4,
/*position of the pagination bar*/
position: "bottom"
}
}
}, document.createElement('div'));
/*append the new grid to the div*/
dojo.byId("gridDiv").appendChild(grid.domNode);
/*Call startup() to render the grid*/
grid.startup();
//console.log(grid);
// Display current page size
});