UNPKG

jqwidgets-framework

Version:

jQWidgets is an advanced jQuery, Angular, React, ASP .NET MVC, Custom Elements and HTML5 UI framework.

127 lines (105 loc) 6.22 kB
<!DOCTYPE html> <html lang="en"> <head> <title id='Description'>Grid Custom Element CustomPager</title> <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1" /> <meta name="viewport" content="width=device-width, initial-scale=1 maximum-scale=1 minimum-scale=1" /> <meta name="description" content="This example shows how to customzie the rendering of the Custom element Grid's Pager." /> <link rel="stylesheet" href="../jqwidgets/styles/jqx.base.css" type="text/css" /> <link rel="stylesheet" href="../styles/demos.css" type="text/css" /> <script type="text/javascript" src="../scripts/webcomponents-lite.min.js"></script> <script type="text/javascript" src="../jqwidgets/jqxcore.js"></script> <script type="text/javascript" src="../jqwidgets/jqxcore.elements.js"></script> <script type="text/javascript" src="../jqwidgets/jqxdata.js"></script> <script type="text/javascript" src="../jqwidgets/jqxbuttons.js"></script> <script type="text/javascript" src="../jqwidgets/jqxscrollbar.js"></script> <script type="text/javascript" src="../jqwidgets/jqxmenu.js"></script> <script type="text/javascript" src="../jqwidgets/jqxgrid.js"></script> <script type="text/javascript" src="../jqwidgets/jqxgrid.selection.js"></script> <script type="text/javascript" src="../jqwidgets/jqxgrid.columnsresize.js"></script> <script type="text/javascript" src="../jqwidgets/jqxlistbox.js"></script> <script type="text/javascript" src="../jqwidgets/jqxgrid.pager.js"></script> <script type="text/javascript" src="../jqwidgets/jqxdropdownlist.js"></script> <script type="text/javascript" src="../scripts/demos.js"></script> <script type="text/javascript" src="../sampledata/generatedata.js"></script> <script type="text/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); window.onload = function() { var myGrid = document.createElement('jqx-grid'); var label; function pagerrenderer () { var element = document.createElement('div'); element.style.cssText = 'margin-left: 10px; margin-top: 5px; width: 100%; height: 100%;'; var leftButtonContainer = document.createElement('div'); leftButtonContainer.style.cssText = 'padding: 0px; margin-top: 13px; float: left; width: 36px;'; var rightButtonContainer = document.createElement('div'); rightButtonContainer.style.cssText = 'padding: 0px; margin: 0px 3px; margin-top: 13px; float: left; width: 36px;'; var leftButton = document.createElement('div'); leftButton.style.cssText = 'margin-left: 9px; width: 16px; height: 16px;'; leftButton.className = 'jqx-icon jqx-icon-arrow-left'; // Cant apply icons to the buttons var rightButton = document.createElement('div'); rightButton.style.cssText = 'margin-left: 9px; width: 16px; height: 16px;'; rightButton.className = 'jqx-icon jqx-icon-arrow-right'; leftButtonContainer.appendChild(leftButton); rightButtonContainer.appendChild(rightButton); var datainfo = this.getdatainformation(); var paginginfo = datainfo.paginginformation; label = document.createElement('div'); label.style.cssText = 'font-size: 11px; margin: 2px 3px; font-weight: bold; float: left;'; label.innerHTML = '1-' + paginginfo.pagesize + ' of ' + datainfo.rowscount; leftButton.addEventListener('click', function() { myGrid.gotonextpage(); }); rightButton.addEventListener('click', function() { myGrid.gotoprevpage(); }); element.appendChild(leftButtonContainer); element.appendChild(rightButtonContainer); element.appendChild(label); return element; } myGrid.settings = { source: dataAdapter, columnsresize: true, pageable: true, autoheight: true, pagerrenderer: pagerrenderer, columns: [ { text: 'First Name', dataField: 'firstname', width: 200 }, { text: 'Last Name', dataField: 'lastname', width: 200 }, { 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' } ] }; document.body.appendChild(myGrid); myGrid.addEventListener('pagechanged', function() { var datainfo = myGrid.getdatainformation(); var paginginfo = datainfo.paginginformation; label.innerHTML = 1 + paginginfo.pagenum * paginginfo.pagesize + '-' + Math.min(datainfo.rowscount, (paginginfo.pagenum + 1) * paginginfo.pagesize) + ' of ' + datainfo.rowscount; }); }; </script> </head> <body> <div class="example-description"> This example shows how to customzie the rendering of the Custom element Grid's Pager. </div> </body> </html>