JavaScript Data Grid from 
This JavaScript Data Grid is far easier to implement than competing products and provides robust . Developed using HTML, CSS, and plain JavaScript with no third-party dependencies makes it a framework-agnostic solution that can be dropped into any website's UI. The grid meshes seamlessly with any array of objects from your backend apis. It also provides blazing speed for scrolling, charts, and much more including advanced filters and sorting. A license comes with 1 Yr. of support, including bug fixes and upgrades.
A high performance, feature-rich Data Grid with more value than competitors
* No 3rd party packages used
Javascript Data Grid Features
- check_circle Virtual Scroll
- check_circle Advanced Column Filters
- check_circle Sort by multiple columns w/ sort order
- check_circle Integrated Charts
- check_circle Cell Editing w/ Validation
- check_circle Processes Links
- check_circle Option to block editing (read-only table)
- check_circle Numbered Rows
- check_circle Top level filter
- check_circle Auto right-aligning of numbers
- check_circle Up to 2 theme colors
- check_circle Functional Reset Button
- check_circle Filter on comparators besides equality e.g. >, <=, before & after dates
- check_circle Auto-populates multi-select column filter where appropriate
- check_circle Detects if strings should be coerced into a more appropriate data type
- check_circle Toggle freezing first column
- check_circle Toggle hiding any column
- check_circle Click and drag column and row resizing on laptop and desktops
- check_circle Click and drag column re-ordering on laptop and desktops
- check_circle Row selection and filtering of selected rows
- check_circle Quick Exports of data to csv, tsv, json, psv
- check_circle 1 Yr. of Support, bug fixes, and upgrades • Contact Us
- check_circle • 7-day money back guarantee
Javascript Data Grid End-User License Agreement
By entering into this agreement with Cedar Technologies LLC, you agree that upon successful payment of PER DEVELOPER, PER APPLICATION, and once the javascript file has been downloaded to your local computer, you will not share or distribute any copies of the proprietary software using email, messaging apps, content delivery networks, or public git repositories. You may reference the downloaded file on your local computer and your website's hosting server(s). The licensor - Cedar Technologies LLC, is responsible for bug fixes, upgrades, & adequate support for 1 Yr. upon purchase. Renew each license after 1 Yr. to receive 1 more Yr. of support per developer. There is a 7-day money back guarantee. Accepted Currencies:
Integrate the data grid by following the instructions
In your html file, insert this code where you want the data grid to appear:
<div class="hidden-cols" ></div>
<div class="controls" >
<input type="text" id="topLevelDataFilter" name="topLevelDataFilter" placeholder="Filter any column..." />
<button type="button" id="btnCharts" class="no-btn btn-chart" disabled>
<i class="material-icons v-mid" aria-hidden="false">pie_chart</i> <span class="v-mid">Insights</span>
</button>
<button type="button" id="btnXSelRows" disabled class="btn-ctrl-sel-rows hide">Deselect Rows</button>
<button type="button" id="btnTogSelRows" disabled class="btn-ctrl-sel-rows hide">
<i class="material-icons" aria-hidden="false">check_box_outline_blank</i> <span>Selected Rows</span>
</button>
<button id="btnReset" class="btn-reset" >Reset</button>
</div>
<div id="dataTableChecks" class="relly"></div>
<div id="selFilContainer" class="relly"></div>
<div id="validatedEdit" class="relly invisible"></div>
<div class="row-numbers" >
<div id="rowNumHeader" class="row-num-header flex-center"><div class="semi-heavy">No.</div></div>
<div style="overflow: hidden"><div id="rowNumBody" style="overflow: auto"></div></div>
</div><div id="dataTable" class="data-table">
<div id="dataTableHeaders" class="data-table-headers"></div>
<div id="dataTableBody"><div id="aboveArea"></div><div id="belowArea"></div></div>
</div>
<div id="tableFooter" class="hide">
<div class="paginator">
<div class="paginator-half-wid">
<div id="totalRows" class="inline v-mid semi-heavy lg-text"></div> <div class="inline v-mid">rows</div>
</div>
</div>
</div>
<div id="selectedRowsInsights" class="hide"></div>
<div class="right pad-top-teen">
<div class="relly">
<div id="ddSelect" class="deebo-dd-select-hide deebo-dd-export">
<div class="deebo-dd-opt deebo-dd-export">
<button type="button" id="btnExportCsv" class="btn-export no-btn">CSV</button>
</div>
<div class="deebo-dd-opt deebo-dd-export">
<button type="button" id="btnExportJson" class="btn-export no-btn">JSON</button>
</div>
<div class="deebo-dd-opt deebo-dd-export">
<button type="button" id="btnExportPsv" class="btn-export no-btn">PSV</button>
</div>
<div class="deebo-dd-opt deebo-dd-export">
<button type="button" id="btnExportTsv" class="btn-export no-btn">TSV</button>
</div>
</div>
</div>
<div class="deebo-dd-contain deebo-dd-export flex-center">
<button class="btn-deebo-dd deebo-dd-export no-btn">
<span>Export</span>
<i class="material-icons" aria-hidden="false">keyboard_arrow_down</i>
</button>
</div>
</div>
To initialize the grid, apply the short piece of code after the enterprise js file reference in your project's appropriate javascript or html file in a script tag. You simply need to replace the data variable assignment with your own list of data you want to display:
<!-- where data is an array of objects e.g. [ { name: "dave" }, {name: "amy" } ] -->
var data = [ { name: "Dave", salary: 80000, title: "CEO" }, {name: "Amy", salary: 75000, title: "CIO" },
{name: "Ted", salary: 60000, title: "QA Engineer" }, {name: "Sarah", salary: 75000, title: "Engineer" } ];
deebo.methods.setLoading()//add an overlay while your backend api is responding
data = deebo.methods.convertNeededCols(data)
dataTableService.methods.mainData = data.filter( function(d) { return true })
dataTableService.methods.currFilData = data.filter( function(d) { return true })
dataTableService.methods.mainDataLen = dataTableService.methods.mainData.length
deebo.methods.buildInitUiDataTable(data, "black", "skyblue")//any 2 css colors
//deebo.methods.buildInitUiDataTable(data, "black", "skyblue", true)//pass true in 4th arg to block editing
//deebo.methods.buildInitUiDataTable(data, "black", "skyblue", true, true)//pass true in 5th arg to hide row numbers