Author: | khaliljarban |
---|---|
Views Total: | 128 views |
Official Page: | Go to website |
Last Update: | September 25, 2023 |
License: | MIT |
Preview:

Description:
Light table is a simple JavaScript library for building interactive data tables from regular HTML tables.
It has several capabilities that make presenting data easy and intuitive:
- The search feature lets users find what they need by quickly filtering table rows.
- Pagination breaks up long tables over multiple pages for improved load times and readability.
- Sorting columns lets users re-order and prioritize information on the fly.
- Excluding columns from search gives you granular control over the experience.
- Theming options like light and dark modes cater to user preferences for accessibility.
- Exports the table to a CSV file. NEW
- Generates bar or line charts from tables. NEW
How to use it:
1. Download the package and include the light-table.js script on your page.
<script src="/js/light-table.js" ></script>
2. Add the data-sortable
attribute to the target table columns which should be sortable.
<table id="table3" > <thead> <tr> <th data-sortable="yes">ID</th> <th data-sortable="yes">First Name</th> <th>Last Name</th> <th>Birth date</th> <th data-sortable="yes">Grade</th> </tr> </thead> <tbody> ... </tbody> </table>
3. Initialize the LightTable on your HTML table. That’s it.
new LightTable({ // selector of your html table selector : 'table', // enable table filtering search : true, // enable table pagination pagination : true, // number of pages paginationPerPage: 10, // stick the table head to the top while scrolling stickyHead : true, // custom theme CSS theme : 'black', // export options print: false, exportCSV: false, exportCSVFileName: '', // strings labels : { print : 'Print', exportCSV : 'Export CSV', searchAnyThing : 'Search any thing' } });
4. Generate a line or bar chart from your table.
new LightTable({ // selector of your html table selector : 'table', charts : [ { id : 'bars', // or 'line' x : 1, //X column index, 0 for the first y : 4, //Y column index color: '#c90000', hover: true, hoverColor: 'blue', hideLabel: false, horizintalLines: true, horizintalLinesColors: '#ccc', spacing: 10, axisScaleUnit: 5, hideAxis: false, } ] });
5. Apply your own CSS styles to the Light Table.
/* table styles */ .lt-table table{ border-collapse: collapse; } .lt-table table th, .lt-table table td{ padding: 5px; } .lt-table.lt-sticky table thead{ position: sticky; top: 0; z-index: 1; } .lt-table button{ font-size: 11px; width:20px; height:20px; line-height:20px; padding:0; border:0; margin:0; cursor: pointer; } .lt-table button.current{ opacity: 0.8; } .lt-table-header{ display: flex; justify-content: space-between; margin-bottom: 20px; } .lt-table-footer{ display: flex; justify-content: space-between; } .lt-table-search { display: flex; gap: 10px; } .lt-table-search input{ width:200px; padding:0 10px; height:30px; border:1px solid #ccc } .lt-table-pagination{ display: flex; gap: 5px; } .lt-table-table{ margin-bottom: 20px; } .lt-table th[data-sortable="yes"]{ cursor: pointer; position: relative; } .lt-table th[data-sortable="yes"]::after{ content: '*'; display: inline-block; vertical-align: midd;e; } /* add your themes here */ .lt-black table th,.lt-black table td { border: 1px solid #000; } .lt-black .lt-table-pagination button, .lt-black table thead{ background-color: #000; } .lt-black table tbody *{ color: #000; } .lt-black .lt-table-pagination button, .lt-black table thead *{ color:#fff; }
6. Use the lt-exclude-search
class to exclude specified cells from search results.
<tr> <td>1001</td> <td class="lt-exclude-search">Ernst</td> <td>Handel</td> <td>09/25/2020</td> <td>90</td> </tr>
Changelog:
v1.0.3 (09/25/2023)
- Add CSV export
- Add line/bar charts