TblTree jquery plugin
This project is maintained by gagiks
Include jQuery and jQuery-ui in your page:
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js"></script>
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jqueryui/1.10.1/jquery-ui.min.js"></script>
Include Plugin in your page:
<script type="text/javascript" src="./js/jquery.tbltree.js"></script>
<link type="text/css" href="css/jquery.tbltree.css" rel="stylesheet">
If you want to use saveState:
option, then need to include $.coocke plugin as well:
<script type="text/javascript" src="./js/jquery.cookie.js"></script>
Create HTML Table by adding 'row-id' and 'parent-id' attributes to "tr" tags. Attributes names can be configured by options `rowAttr` and `parrentAttr`.
<table id="table1">
<tr>
<th>Title</th><th>Column 1</th><th>Column 2</th><th>Column 3</th>
</tr>
<tr row-id="1">
<td>Level 1</td><td class="data">2</td><td class="data">2</td><td class="data">2</td>
</tr>
<tr row-id="1.1" parent-id="1" >
<td>Level 1.1</td><td class="data">2</td><td class="data">2</td><td class="data">2</td>
</tr>
<tr row-id="2">
<td>Level 2</td><td class="data">2</td><td class="data">2</td><td class="data">2</td>
</tr>
<tr row-id="2.1" parent-id="2" >
<td>Level 2.1</td><td class="data">2</td><td class="data">2</td><td class="data">2</td>
</tr>
</table>
Add javascript code:
$(function() {
// initialize with default options
$( "#table1" ).tbltree();
});
Add javascript code:
Title | Column 1 | Column 2 | Column 3 |
---|---|---|---|
Level 1 | 2 | 2 | 2 |
Level 1.1 | 2 | 2 | 2 |
Level 2 | 2 | 2 | 2 |
Level 2.1 | 2 | 2 | 2 |
Parameter | Type | Default | Description |
---|---|---|---|
rowAttr: | String | 'row-id' | Attribute name which is set for <tr> tags and identifies the ID of the row. |
parentAttr: | String | 'parent-id' | Attribute name which is set for <tr> tags and identifies the ID of parent row.Note: this attribute must be skipped for root nodes. |
initState: | String | 'collapsed' | |
treeColumn: | String | 0 | Identifies the column of the table we want to make a tree. |
saveState: | Boolean | false | If true tree state will be save after page is re-loaded |
saveStateName: | String | 'tbltree-state' | Name of cookie to save state |
levelPicker: | String | '' | jQuery selectot of an element where we cant to render level pickers. |
expanderTemplate: | String | <span class="tbltree-expander"></span> |
HTML Element when you click on that will be collapse/expand branches |
levelPickerTemplate: | String |
<div class="tbltree-level-pickers">
<span id="0" class="tbltree-level-item">[1]</span>
<span id="1" class="tbltree-level-item">[2]</span>
<span id="2" class="tbltree-level-item">[3]</span>
<span id="3" class="tbltree-level-item">[4]</span>
</div> |
HTML template of level pickers, each element having class tbltree-level-item must have numberic id, identifying the level we want to show. |
indentTemplate: | String | <span class="tbltree-indent"></span> |
HTML Element that will be placed as padding, depending on the depth of nesting node |
expanderExpandedClass: | String | 'tbltree-expander-expanded' | Class using for expander element when it expanded |
expanderCollapsedClass: | String | 'tbltree-expander-collapsed' | Class using for expander element when it collapsed |
count: | Object | AsIs | Define a way to count number and display for row based on children rows. Please see example for more details |
Method | Description | Example |
---|---|---|
showLevel | Show level of tree we want | $('#table1').tbltree('showLevel', 2) |
expand | Expand row with ID | $('#table1').tbltree('expand', '1.1') |
collapse | Collapse row with ID | $('#table1').tbltree('collapse', '1.1') |
isCollapsed | Returns true if row is collpased | $('#table1').tbltree('isCollapsed', '1.1') |
isExpanded | Returns true if row is expanded | $('#table1').tbltree('isExpanded', '1.1') |
Event | Description | Example |
---|---|---|
create | Triggered when tree creation completed |
$('#table1').tbltree({ create: function() { alert('Tree created') } }) |
expand | Triggered when any row is expanded |
$('#table1').tbltree({ expand: function(e, row) { alert(row.attr('row-id')+ " was expadned"); } }) |
expand | Triggered when any row is collapsed |
$('#table1').tbltree({ collapse: function(e, row) { alert(row.attr('row-id')+ " was collapsed"); } }) |
change | Triggered when any row is collapsed or expanded |
$('#table1').tbltree({ change: function(e, data) { alert(data.row.attr('row-id')+ " was "+data.type); } }) |
showlevel | Triggered when tree level shown (for example from level pickers) |
$('#table1').tbltree({ showlevel: function(e, level) { alert('Level '+level+' was shown') } }) |