Html Grid

Set the sortable 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='jqxWidget'>
    <div id="jqxgrid"></div>
</div>

JavaScript

const data = generatedata(500);
 const source = {
   localdata: data,
   datafields: [{
     name: 'firstname',
     type: 'string'
   }, {
     name: 'lastname',
     type: 'string'
   }, {
     name: 'productname',
     type: 'string'
   }, {
     name: 'date',
     type: 'date'
   }, {
     name: 'quantity',
     type: 'number'
   }, {
     name: 'price',
     type: 'number'
   }],
   datatype: "array"
 };

 const adapter = new $.jqx.dataAdapter(source);
 $("#jqxgrid").jqxGrid({
   width: 500,
   theme: 'energyblue',
   source: adapter,
   sortable: true,
   editable: true,
   columns: [
   {
     text: 'First Name',
     datafield: 'firstname',
     width: 90
   }, {
     text: 'Last Name',
     datafield: 'lastname',
     width: 90
   }, {
     text: 'Product',
     datafield: 'productname',
     width: 170
   }, {
     text: 'Order Date',
     datafield: 'date',
     width: 160,
     cellsformat: 'dd-MMMM-yyyy'
   }, {
     text: 'Quantity',
     datafield: 'quantity',
     width: 80,
     cellsalign: 'right'
   }, {
     text: 'Unit Price',
     datafield: 'price',
     cellsalign: 'right',
     cellsformat: 'c2'
   }]
 });