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'
     }]
 });