Dynamic Interactive Tree Table Plugin For Bootstrap - GTreeTable 2
File Size: | 51.4 KB |
---|---|
Views Total: | 19473 |
Last Update: | |
Publish Date: | |
Official Website: | Go to website |
License: | MIT |

GTreeTable 2 is a jQuery plugin for Bootstrap framework that dynamically renders interactive hierarchical tree tables with support for drag'n'drop, data sorting & caching, live editing and more.
How to use it:
1. Include the necessary jQuery library and Bootstrap framework on the web page.
<link href="bootstrap.css" rel="stylesheet"> <script src="jquery.js"></script> <script src="bootstrap.js"></script>
2. Include jQuery UI library for the drag and drop functionality.
<script src="jquery-ui.js"></script>
3. Include the jQuery GTreeTable 2 plugin's files on the page.
<link href="bootstrap-gtreetable.min.css" rel="stylesheet"> <script src="bootstrap-gtreetable.min.js"></script>
4. Create an empty table as this:
<table id="example" class="gtreetable table"> <thead> <tr> <th width="100%">Name</th> </tr> </thead> </table>
5. Initialize the plugin on the Html table and define your own data to load.
$('#example').gtreetable({ "source":function (id) { return { type: 'GET', url: URI('/data.php?r=site%2FnodeChildren').addSearch({'id':id}).toString(), dataType: 'json', error: function(XMLHttpRequest) { alert(XMLHttpRequest.status+': '+XMLHttpRequest.responseText); } }; } });
6. Plugin's default options.
nodesWrapper: 'nodes', nodeIndent: 16, language: 'en', inputWidth: '60%', cache: 2, readonly: false, selectLimit: 1, rootLevel: 0, manyroots: false, draggable: false, dragCanExpand: false, showExpandIconOnEmpty: false, languages: { 'en-US': { save: 'Save', cancel: 'Cancel', action: 'Action', actions: { createBefore: 'Create before', createAfter: 'Create after', createFirstChild: 'Create first child', createLastChild: 'Create last child', update: 'Update', 'delete': 'Delete' }, messages: { onDelete: 'Are you sure?', onNewRootNotAllowed: 'Adding the now node as root is not allowed.', onMoveInDescendant: 'The target node should not be descendant.', onMoveAsRoot: 'The target node should not be root.' } } }, defaultActions: [ { name: '${createBefore}', event: function (oNode, oManager) { oNode.add('before', 'default'); } }, { name: '${createAfter}', event: function (oNode, oManager) { oNode.add('after', 'default'); } }, { name: '${createFirstChild}', event: function (oNode, oManager) { oNode.add('firstChild', 'default'); } }, { name: '${createLastChild}', event: function (oNode, oManager) { oNode.add('lastChild', 'default'); } }, { divider: true }, { name: '${update}', event: function (oNode, oManager) { oNode.makeEditable(); } }, { name: '${delete}', event: function (oNode, oManager) { if (confirm(oManager.language.messages.onDelete)) { oNode.remove(); } } } ], classes: { node: 'node', loading: 'node-loading', selected: 'node-selected', hovered: 'node-hovered', expanded: 'node-expanded', collapsed : 'node-collapsed', draggable : 'node-draggable', draggableHelper : 'node-draggable-helper', draggablePointer : 'node-draggable-pointer', draggableContainer : 'node-draggable-container', saved: 'node-saved', name: 'node-name', icon: 'node-icon', selectedIcon: 'node-icon-selected', ceIcon: 'node-icon-ce', typeIcon: 'node-icon-type', handleIcon : 'node-icon-handle', action: 'node-action', indent: 'node-indent', saveButton: 'node-save', cancelButton: 'node-cancel', buttons: 'node-buttons' }
This awesome jQuery plugin is developed by gilek. For more Advanced Usages, please check the demo page or visit the official website.