JavaScript Grid
Set the pagerrenderer property of the jqxGrid.
Author: http://jqwidgets.com
HTML
<script src="https://jqwidgets.com/public/jqwidgets/jqx-all.js"></script>
<link rel="stylesheet" href="https://jqwidgets.com/public/jqwidgets/styles/jqx.base.css">
<link rel="stylesheet" href="https://jqwidgets.com/public/jqwidgets/styles/jqx.energyblue.css">
<script src="https://jqwidgets.com/jquery-widgets-demo/demos/jqxgrid/generatedata.js"></script>
<div id="jqxgrid"></div>
JavaScript
var source = {
localdata: generatedata(55),
datafields: [{
name: 'firstname',
type: 'string'
}, {
name: 'lastname',
type: 'string'
}, {
name: 'productname',
type: 'string'
}, {
name: 'quantity',
type: 'number'
}, {
name: 'price',
type: 'number'
}, {
name: 'total',
type: 'number'
}],
datatype: "array"
};
var dataAdapter = new $.jqx.dataAdapter(source);
var self = this;
var pagerrenderer = function () {
var element = $("<div style='margin-top: 5px; width: 100%; height: 100%;'></div>");
var paginginfo = $("#jqxgrid").jqxGrid('getpaginginformation');
for (i = 0; i < paginginfo.pagescount; i++) {
var anchor = $("<a style='padding: 5px;' href='#" + i + "'>" + i + "</a>");
anchor.appendTo(element);
anchor.click(function (event) {
var pagenum = parseInt($(event.target).text());
$("#jqxgrid").jqxGrid('gotopage', pagenum);
});
}
return element;
}
$("#jqxgrid").jqxGrid({
source: dataAdapter,
columnsresize: true,
width: 600,
theme: 'energyblue',
pageable: true,
autoheight: true,
pagerrenderer: pagerrenderer,
columns: [{
text: 'First Name',
dataField: 'firstname',
width: 100
}, {
text: 'Last Name',
dataField: 'lastname',
width: 100
}, {
text: 'Product',
dataField: 'productname',
width: 170
}, {
text: 'Quantity',
dataField: 'quantity',
width: 80,
cellsalign: 'right'
}, {
text: 'Unit Price',
dataField: 'price',
width: 90,
cellsalign: 'right',
cellsformat: 'c2'
}, {
text: 'Total',
dataField: 'total',
cellsalign: 'right',
cellsformat: 'c2'
}]
});