Spreadsheet-style Data Table Plugin For jQuery - Dynamic Table
| File Size: | 238 KB |
|---|---|
| Views Total: | 10623 |
| Last Update: | |
| Publish Date: | |
| Official Website: | Go to website |
| License: | MIT |
A dynamic, AJAX-driven, Spreadsheet-style data table plugin with jQuery that features filtering, sorting, cell editing, performant scrolling and more.
How to use it:
1. Load the needed jQuery JavaScript library together with the jQuery Dynamic Table plugin's files in your html document.
<link rel="stylesheet" href="dynamic-table.jquery.css">
<script src="https://code.jquery.com/jquery-1.12.4.min.js"
integrity="sha384-nvAa0+6Qg9clwYCGGPpDQLVpLNn0fRaROjHqs13t4Ggj3Ez50XnGQqc/r8MhnRDZ"
crossorigin="anonymous">
</script>
<script src="dynamic-table.jquery.js"></script>
<script src="dynamic-table-editor.jquery.js"></script>
2. Load the OPTIONAL jQuery UI and moment.js libraries for date filtering by date and time.
<script src="https://ajax.googleapis.com/ajax/libs/jqueryui/1.12.1/jquery-ui.min.js"></script> <script src="https://cdnjs.cloudflare.com/ajax/libs/moment.js/2.18.1/moment.min.js"></script>
3. Create an empty container to place the generated data table.
<div id="data-grid"> </div>
4. Initialize the dynamic table plugin.
$("#data-grid").dynamicTable({
fillParent : false,
showCounter: true,
changeColumns: true,
listChange : function() {
var myCounts = $("#sample-grid").dynamicTable("counts");
$("#counts").text("Total: " + myCounts.total + " Filtered: " + myCounts.filtered);
},
});
5. Define your own tabular data. This would usually be done in an AJAX call ($.getJSON) but for demo purposes we show hardcoded data.
var myData =[
{
id:10001,
name:"Bill Smith",
birthDate:new Date(1956,
3,
12 ).getTime(),
country:"United States",
state:"Texas",
note:"Test",
language:"English"
},
{
id:10002,
name:"Michael Jones",
birthDate:new Date(1975,
7,
23 ).getTime(),
country:"United States",
state:"Florida",
language:"English"
},
{
id:10003,
name:"Heinz Mayer",
birthDate:new Date(1972,
8,
2 ),
country:"Germany",
state:"Bayern",
language:"German"
},
...
];
6. Define columns.
var myColumns =[
{
// Hidden Identifier column
name:"Identifier",
type:"number",
visible:false,
field:"id",
},
{
// Searchable text column
name:"Name",
type:"string",
visible:true,
filterType:"search",
width:200,
field:"name",
// <== When providing objects as rows make sure to set the field to be the attribute to be displayed in that column
},
{
// Date column with date filter
name:"Birth Date",
type:"date",
visible:true,
format:"d-MMM-YYYY",
filterType:"dateRange",
cssClass:function (aColumn,
aValue,
aDisplayValue) {
return aValue != null ? "has-birth-date":null
},
field:"birthDate",
},
{
// Limited values with default picklist filter
name:"Country",
type:"string",
visible:true,
field:"country",
},
{
name:"State",
type:"string",
visible:true,
field:"state",
},
{
name:"Note",
type:"string",
visible:true,
field:"note",
editor:$("<div/>").dynamicTableEditor( {
editHandler:function(aData,
aContext) {
$("#save-data").html("Saving note:<strong>" + aData + "</strong>");
}
} )
},
{
name:"Language",
type:"string",
visible:true,
field:"language",
}
];
7. Load the data into the grid. Done.
$("#data-grid").dynamicTable("data", myData, myColumns);
8. Plugin's default settings.
$("#data-grid").dynamicTable({
fillParent : true,
rowHeight : 35,
pageSize : 50,
pageBuffer : 1,
showCounter : false,
showCheck : false,
changeColumns : false,
settingsHandler : $.fn.dynamicTable.defaultSettingsHandler()
});
9. API methods.
// clears all filters
$("#data-grid").dynamicTable('clearAllFilters');
// returns an object with basic counts of the data in the table.
// total: All records loaded into the table
// filtered: The amount of records currently visible based on the selected filter
$("#data-grid").dynamicTable('counts', total, filtered);
10. Possible event handlers.
$("#data-grid").on("rowSelect", function(aEvent) {
// ...
});
$("#data-grid").on("rowDoubleClick", function(aEvent) {
// ...
});
Changelog:
2018-08-05
- Fix column show/hide caching issue
2018-05-06
- Add parameter for row height
2018-03-12
- Allow selecting of text in editor field
This awesome jQuery plugin is developed by key-lime-box. For more Advanced Usages, please check the demo page or visit the official website.









