JavaScript Grid

Bind to the filter event by type: jqxGrid. Author: http://jqwidgets.com

by rory kil

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 id='selection' style='margin-right: 5px; padding: 0px; float: left;'>
        <div style='float: left;margin-left: 5px; width: 90px; height: 18px;'>run this Bulk Select it takes to long</div>
    </div>
</div>

JavaScript

var data = generatedata(1000);
 var 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"
 };

 var adapter = new $.jqx.dataAdapter(source);
 $("#jqxgrid").jqxGrid({
     theme: 'energyblue',
     source: adapter,
     sortable: true,
     width: '100%',
     selectionmode: 'checkbox',
     altrows: true,
     pageable: true,
     enablebrowserselection: true,
     showfilterrow: true,
     filterable: true,
     autoshowfiltericon: true,
     rowsheight: 22,
     height: '440px',
     pagesize: 500,
     pagesizeoptions: [10, 20, 50, 100, 200, 500, 1000, 2000, 3000, 4000, 5000],
     //virtualmode: true,
     columnsresize: true,
     rendergridrows: function (obj) {
         return obj.data;
     },
     columns: [{
         text: 'First Name',
         datafield: 'firstname',
         columngroup: 'Name',
         width: 90,
         pinned: true
     }, {
         text: 'Last Name',
         columngroup: 'Name',
         datafield: 'lastname',
         width: 90,
         pinned: true
     }, {
         text: 'Product',
         datafield: 'productname',
         width: 170,
         pinned: true
     }, {
         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'
     }, {
         datafield: 'AssignedToFullname',
         filterable: false,
         text: 'Analyst',
         width: 120
   ...