Bootstrap spreadsheet is extended with radio, checkbox, sort, pagination, attachments, and other added features.
Bootstrap Table is a responsive, dynamic, extendable, multifunctional, and highly customizable jQuery spreadsheet plugin for Supports Bootstrap, Semantic UI, Bulma, Material Design, Foundation, Vue.js.
How to make use of it:
1. Include the Bootstrap Table plugin’s information and extensions of your alternative in your Bootstrap undertaking.
<!-- Dependencies --> <link rel="stylesheet" href="/path/to/bootstrap.min.css"> <script src="/path/to/jquery.min.js"></script> <script src="/path/to/bootstrap.min.js"></script> <!-- Bootstrap Table Plugin --> <link rel="stylesheet" href="bootstrap-table.css"> <script src="bootstrap-table.js"></script> <!-- Bulma Theme --> <link rel="stylesheet" href="thems/bulma/bootstrap-table-bulma.css"> <script src="thems/bulma/bootstrap-table-bulma.js"></script> <!-- Foundation Themes --> <link rel="stylesheet" href="thems/bulma/bootstrap-table-foundation.css"> <script src="thems/bulma/bootstrap-table-foundation.js"></script> <!-- Materialize Themes --> <link rel="stylesheet" href="thems/bulma/bootstrap-table-materialize.css"> <script src="thems/bulma/bootstrap-table-materialize.js"></script> <!-- Semantic Themes --> <link rel="stylesheet" href="thems/bulma/bootstrap-table-semantic.css"> <script src="thems/bulma/bootstrap-table-semantic.js"></script>
2. Include the Bootstrap Table plugin’s extensions:
<!-- use the query params in the address bar --> <script src="extensions/addrbar/bootstrap-table-addrbar.js"></script> <!-- auto refresh table --> <script src="extensions/auto-refresh/bootstrap-table-auto-refresh.js"></script> <!-- enable cookies --> <script src="extensions/cookie/bootstrap-table-cookie.js"></script> <!-- allows you to copy table rows --> <script src="extensions/copy-rows/bootstrap-table-copy-rows.js"></script> <!-- custom table view --> <script src="extensions/custom-view/bootstrap-table-custom-view.js"></script> <!-- use data-defer-url instead of data-url --> <script src="extensions/defer-url/bootstrap-table-defer-url.js"></script> <!-- editable table --> <script src="extensions/editable/bootstrap-table-editable.js"></script> <!-- exports table data to 'json', 'xml', 'csv', 'txt', 'sql', 'excel', etc --> <script src="extensions/export/bootstrap-table-export.js"></script> <!-- enables filter controls --> <link rel="stylesheet" href="extensions/filter-control/bootstrap-table-filter-control.css"> <script src="extensions/filter-control/bootstrap-table-filter-control.js"></script> <!-- makes table columns fixed --> <link rel="stylesheet" src="extensions/fixed-columns/bootstrap-table-fixed-columns.css"> <script src="extensions/fixed-columns/bootstrap-table-fixed-columns.js"></script> <!-- groups the data by the field --> <link rel="stylesheet" src="extensions/group-by-v2/bootstrap-table-group-by.css"> <script src="extensions/group-by-v2/bootstrap-table-group-by.js"></script> <!-- enhanced i18n support --> <script src="extensions/i18n-enhance/bootstrap-table-i18n-enhance.js"></script> <!-- enables key events --> <script src="extensions/key-events/bootstrap-table-key-events.js"></script> <!-- responsive & mobile friendly table view --> <script src="extensions/mobile/bootstrap-table-mobile.js"></script> <!-- enables multi-sort --> <script src="extensions/multiple-sort/bootstrap-table-multiple-sort.js"></script> <!-- allows to jump to a specific page --> <link rel="stylesheet" href="extensions/page-jump-to/bootstrap-table-jump-to.css"></style> <script src="extensions/page-jump-to/bootstrap-table-jump-to.js"></script> <!-- pipeline --> <script src="extensions/pipeline/bootstrap-table-pipeline.js"></script> <!-- print --> <script src="extensions/print/bootstrap-table-print.js"></script> <!-- reorder table via drag and drop --> <link rel="stylesheet" href="dragtable.css"> <script src="jquery-ui.js"></script> <script src="jquery.dragtable.js"></script> <script src="extensions/reorder-columns/bootstrap-table-reorder-columns.js"></script> <!-- allows to reorder table rows --> <link rel="stylesheet" href="bootstrap-table-reorder-rows.css"> <script src="jquery.tablednd.js"></script> <script src="extensions/reorder-rows/bootstrap-table-reorder-rows.js"></script> <!-- resizable table --> <script src="extensions/resizable/bootstrap-table-resizable.js"></script> <!-- sticky table header --> <script src="extensions/sticky-header/bootstrap-table-sticky-header.js"></script> <!-- enables toolbar --> <script src="extensions/toolbar/bootstrap-table-toolbar.js"></script> <!-- enables tree <a href="#!">grid</a> --> <script src="extensions/treegrid/bootstrap-table-treegrid.js"></script>
3. Load languages you like. You can find all languages below the local
folder.
<script src="locale/bootstrap-table-en-US.min.js"></script>
4. Turns a normal HTML desk into a data table utilizing the data-toggle="table"
attribute.
<table class="table" data-toggle="table"> <thead> <tr> <th scope="col">First</th> <th scope="col">Last</th> <th scope="col">Handle</th> </tr> </thead> <tbody> <tr> <td>Mark</td> <td>Otto</td> <td>@mdo</td> </tr> <tr> <td>Jacob</td> <td>Thornton</td> <td>@fat</td> </tr> <tr> <td>Larry</td> <td>the Bird</td> <td>@<a href="#!">twitter</a></td> </tr> </tbody> </table>
5. To load tabular information from an external JSON file:
<table class="table" data-toggle="table" data-url="data.json"> <thead> <tr> <th scope="col">First</th> <th scope="col">Last</th> <th scope="col">Handle</th> </tr> </thead> </table>
6. You can even initialize the information table and define the tabular information within the JavaScript as these:
$('#example').bootstrapTable({ columns: [{ field: 'first', title: 'First Name' }, { field: 'last', title: 'Last Name' }, { field: 'handle', title: 'Handle' }], data: [{ first: 'Mark', last: 'Otto', handle: '@mdo' }, ... });
7. Full plugin options to customize your data table.
$('#example').bootstrapTable({ // height height: undefined, // table classes classes: 'table table-hover', // add custom buttons to the button bar buttons: {}, // thead classes theadClasses: '', // header style headerStyle: function headerStyle(column) { return {}; }, // undefined text undefinedText: '-', // local file locale: undefined, // enables virtual scroll virtual<a href="#!">Scroll</a>: false, virtualScrollItemHeight: undefined, // enable sortable sortable: true, // enable silent sort silentSort: true, // enable stable sort sortStable: false, // class name of sortable cell sortClass: undefined, // custom sort name sortName: undefined, // or desc sortOrder: 'asc', // reset the sort on third click sortReset: false, // remember order direction rememberOrder: false, // enable server-side sort serverSort: true, // striped rows striped: false, // custom sort function customSort: $.noop, // table columns columns: [[]], // tabular data data: [], // filter options filterOptions: { filterAlgorithm: 'and' }, // total field totalField: 'total', // total not filtered totalNotFilteredField: 'totalNotFiltered', // data field dataField: 'rows', // support server side pagination footerField: 'footer', // AJAX options url: undefined, method: 'get', ajax: undefined, cache: true, contentType: 'application/json', dataType: 'json', ajaxOptions: {}, queryParams: function (params) { return params; }, queryParamsType: 'limit', // undefined responseHandler: function (res) { return res; }, // pagination options pagination: false, onlyInfoPagination: false, showExtendedPagination: false, paginationLoop: true, sidePagination: 'client', // client or server totalRows: 0, // server side need to set totalNotFiltered: 0, pageNumber: 1, pageSize: 10, pageList: [10, 25, 50, 100], paginationHAlign: 'right', //right, left paginationVAlign: 'bottom', //bottom, top, both paginationDetailHAlign: 'left', //right, left paginationPreText: '‹', paginationNextText: '›', paginationSuccessivelySize: 5, // Maximum successively number of pages in a row paginationPagesBySide: 1, // Number of pages on each side (right, left) of the current page. paginationUseIntermediate: false, // Calculate intermediate pages for quick access showPaginationSwitch: false, // live search options search: false, searchHighlight: false, searchOnEnterKey: false, strictSearch: false, searchSelector: false, searchAlign: 'right', visibleSearch: false showButtonIcons: true, showButtonText: false, showSearchButton: false, showSearchClearButton: false, trimOnSearch: true, searchTimeOut: 500, searchText: '', customSearch: $.noop, searchAccentNeutralise: false, // name of radio or checkbox input selectItemName: 'btSelectItem', // show table header showHeader: true, // show table footer showFooter: false, // show specific columns showColumns: false, // show toggle all showColumnsToggleAll: false, // shows column search field showColumnsSearch: false, // show refresh button showRefresh: false, // show toggle button (card view & detail view) showToggle: false, // show fullscreen button showFullscreen: false, // auto display card view smartDisplay: true, // escape a string for insertion into HTML escape: false, // minimum number of columns to hide from the columns drop down list. minimumCountColumns: 1, // which field is an identity field idField: undefined, // unique identifier for each row uniqueId: undefined, // enable card view cardView: false, // detail view detailView: false, detailFormatter: function (index, row) { return ''; }, detailFilter: function (index, row) { return true; }, detailViewIcon: true, detailViewByClick: false, detailViewAlign: 'left', // click to select clickToSelect: false, // enable single select singleSelect: false, // toolbar options toolbar: undefined, toolbarAlign: 'left', buttonsPrefix: null, buttonsToolbar: undefined, buttonsAlign: 'right', buttonsOrder: ['paginationSwitch', 'refresh', 'toggle', 'fullscreen', 'columns'], checkboxHeader: true, // maintain meta data maintainMetaData: true, // enable multi-row selection multipleSelectRow: false, // maintain selected maintainSelected: false, // icon size iconSize: undefined, // button class buttonsClass: bs.buttonsClass, // prefix iconsPrefix: bs.iconsPrefix, // glyphicon or fa (font awesome) // icons icons: bs.icons, // return true if the click should be ignored // false if the click should cause the row to be selected ignoreClickToSelectOn: function (element) { return $.inArray(element.tagName, ['A', 'BUTTON']); }, // row style rowStyle: function (row, index) { return {}; }, // row attributes rowAttributes: function (row, index) { return {}; }, // footer style footerStyle: function (row, index) { return {}; }, // font size of the loading text loadingFontSize: 'auto', // custom loading template loadingTemplate: function loadingTemplate(loadingMessage) { return "<span class=\"loading-wrap\">\n <span class=\"loading-text\">".concat(loadingMessage, "</span>\n <span class=\"animation-wrap\"><span class=\"animation-dot\"></span></span>\n </span>\n "); }, });
8. Customize columns with the next choices.
var COLUMN_DEFAULTS = { field: undefined, title: undefined, title<a href="#!">Tooltip</a>: undefined, 'class': undefined, width: undefined, widthUnit: 'px', rowspan: undefined, colspan: undefined, align: undefined, // left, right, center halign: undefined, // left, right, center falign: undefined, // left, right, center valign: undefined, // top, middle, bottom cellStyle: undefined, radio: false, checkbox: false, checkboxEnabled: true, clickToSelect: true, showSelectTitle: false, sortable: false, sortName: undefined, order: 'asc', // asc, desc sorter: undefined, visible: true, switchable: true, cardVisible: true, searchable: true, formatter: undefined, footerFormatter: undefined, detailFormatter: undefined, searchFormatter: true, searchHighlightFormatter: false, escape: false, events: undefined };
9. You can even cross the options by way of data-OPTION
attributes like these:
<table id="table" data-toolbar="#toolbar" data-search="true" data-show-refresh="true" data-show-toggle="true" data-show-columns="true" data-show-export="true" data-detail-view="true" data-detail-formatter="detailFormatter" data-minimum-count-columns="2" data-show-pagination-switch="true" data-pagination="true" data-id-field="id" data-page-list="[10, 25, 50, 100, ALL]" data-show-footer="false" data-side-pagination="server" data-url="/examples/bootstrap_table/data" data-response-handler="responseHandler"> <thead> <tr> <th data-field="id" data-halign="right" data-align="center">Item ID</th> <th data-field="name" data-halign="center" data-align="left">Item Name</th> <th data-field="price" data-halign="left" data-align="right">Item </tr> </thead> </table>
10. Callback features and occasion handlers.
$('#example').on('eventName.bs.table', function (e, arg1, arg2, ...) { // ... })) // or $('#example').bootstrapTable({ onAll: function onAll(name, args) { return false; }, onClickCell: function onClickCell(field, value, row, $element) { return false; }, onDblClickCell: function onDblClickCell(field, value, row, $element) { return false; }, onClickRow: function onClickRow(item, $element) { return false; }, onDblClickRow: function onDblClickRow(item, $element) { return false; }, onSort: function onSort(name, order) { return false; }, onCheck: function onCheck(row) { return false; }, onUncheck: function onUncheck(row) { return false; }, onCheckAll: function onCheckAll(rows) { return false; }, onUncheckAll: function onUncheckAll(rows) { return false; }, onCheckSome: function onCheckSome(rows) { return false; }, onUncheckSome: function onUncheckSome(rows) { return false; }, onLoadSuccess: function onLoadSuccess(data) { return false; }, onLoadError: function onLoadError(status) { return false; }, onColumnSwitch: function onColumnSwitch(field, checked) { return false; }, onPageChange: function onPageChange(number, size) { return false; }, onSearch: function onSearch(text) { return false; }, onToggle: function onToggle(cardView) { return false; }, onPreBody: function onPreBody(data) { return false; }, onPostBody: function onPostBody() { return false; }, onPostHeader: function onPostHeader() { return false; }, onPostFooter: function onPostFooter() { return false; }, onExpandRow: function onExpandRow(index, row, $detail) { return false; }, onCollapseRow: function onCollapseRow(index, row) { return false; }, onRefreshOptions: function onRefreshOptions(options) { return false; }, onRefresh: function onRefresh(params) { return false; }, onResetView: function onResetView() { return false; }, onScrollBody: function onScrollBody() { return false; } });
11. API strategies:
// returns the options object $('#example').bootstrapTable('getOptions'); // up<a href="#!">date</a>s the options $('#example').bootstrapTable('refreshOptions', OPTIONS) // gets the table data $('#example').bootstrapTable('getData', useCurrentPage(True Or False), includeHiddenRows(True Or False), unfiltered) // gets the selected rows $('#example').bootstrapTable('getSelections') // gets all the selected rows $('#example').bootstrapTable('getAllSelections'); // loads data into the table $('#example').bootstrapTable('load', Data); // appends data to the table $('#example').bootstrapTable('append', Data); // prepends data $('#example').bootstrapTable('prepend', Data); // removes data from the table $('#example').bootstrapTable('getOptions', fieldName, Values); // removes all data $('#example').bootstrapTable('removeAll'); // inserts a new row to the table $('#example').bootstrapTable('insertRow', Index, rowData); // updates a row $('#example').bootstrapTable('updateRow', Index, rowData, Replace(True Or False)); // gets data by unique ID $('#example').bootstrapTable('getRowByUniqueId', Id); // updates specified rows $('#example').bootstrapTable('updateByUniqueId', ID, rowData, Replace(True Or False)); // removes data $('#example').bootstrapTable('remove', {field: 'id', values: ids}). // removes data by unique ID $('#example').bootstrapTable('removeByUniqueId', Id); // updates a cell $('#example').bootstrapTable('updateCel', Index, fieldName, Value); // updates data $('#example').bootstrapTable('updateCell', {index: 1, field: 'name', value: 'Updated Name'}). // updates a cell by unique ID $('#example').bootstrapTable('updateCellByUniqueId', Id, fieldName, Value); // shows the row $('#example').bootstrapTable('showRow', Index, Id); // hides a row $('#example').bootstrapTable('hideRow', Index, Id); // gets hidden rows $('#example').bootstrapTable('getHiddenRows', Show(True or False)); // shows the column $('#example').bootstrapTable('showColumn', Field); // hides a column $('#example').bootstrapTable('hideColumn', Field); // gets visible columns $('#example').bootstrapTable('getVisibleColumns'); // gets hidden columns $('#example').bootstrapTable('getHiddenColumns'); // shows all columns $('#example').bootstrapTable('showAllColumns'); // hides all columns $('#example').bootstrapTable('hideAllColumns'); // merges cells $('#example').bootstrapTable('mergeCells', Index, fieldName, rowSpan, colSpan); // selects all rows $('#example').bootstrapTable('checkAll'); // unchecks al rows $('#example').bootstrapTable('uncheckAll'); // inverts the selection $('#example').bootstrapTable('checkInvert'); // selects a specific row $('#example').bootstrapTable('check', Index); // unchecks a specific row $('#example').bootstrapTable('uncheck', Index); // selects a row by array of values $('#example').bootstrapTable('checkBy', fieldName, Values); // unchecks a row by array of values $('#example').bootstrapTable('uncheckBy', fieldName, Values); // refreshes/reloads the remote server data $('#example').bootstrapTable('refresh', Data); // destroys the instance $('#example').bootstrapTable('destroy'); // resets the table view $('#example').bootstrapTable('resetView', Height); // resets the width $('#example').bootstrapTable('resetWidth'); // shows loading status $('#example').bootstrapTable('showLoading'); // hides loading status $('#example').bootstrapTable('hideLoading'); // toggles pagination controls $('#example').bootstrapTable('togglePagination'); // toggles the fullscreen mode $('#example').bootstrapTable('toggleFullscreen'); // toggles between table/card views $('#example').bootstrapTable('toggleView'); // resets the search $('#example').bootstrapTable('resetSearch'); // filters the table $('#example').bootstrapTable('filterBy', Filter, Options); // scrolls to a specific point $('#example').bootstrapTable('scrollTo', Value(px) or {unit: 'px', value: 0}); // gets the current scroll position $('#example').bootstrapTable('getScrollPosition'); // goes to a specific page $('#example').bootstrapTable('selectPage', Page); // goes to the prev page $('#example').bootstrapTable('prevPage'); // goes to the next page $('#example').bootstrapTable('nextPage'); // toggles the details view $('#example').bootstrapTable('toggleDetailView', Index); // expands a row $('#example').bootstrapTable('expandRow', Index); // collapses a row $('#example').bootstrapTable('collapseRow', Index); // expands all rows $('#example').bootstrapTable('expandAllRows'); // collapses all rows $('#example').bootstrapTable('collapseAllRows'); // expands row by unique ID $('#example').bootstrapTable('expandRowByUniqueId', uniqueID); // collapses row by unique ID $('#example').bootstrapTable('collapseRowByUniqueId', uniqueID); // updates the column title $('#example').bootstrapTable('updateColumnTitle', fieldName, Title); // updates format text $('#example').bootstrapTable('updateFormatText', formatName, text);
Feature-Rich Data Table Plugin For Bootstrap, Bootstrap Table Plugin/Github
See Demo And Download
Official Website(wenzhixin): Click Here
This superior jQuery/javascript plugin is developed by wenzhixin. For extra Advanced Usages, please go to the official website.