SuperTable Class
Reference
NOTE: The references below assume that you have
some working knowledge of Javascript.
Table Class
DESCRIPTION: This is the parent class that contains all methods
and properties for performing the sorting and
filtering functionality.
WHEN TO USE: This method must be run for each sort/filter table
on the web page.
USAGE NOTES:
variable-name = new Table( 'tbody-id' )
WHERE:
variable- You can use any variable name you wish (i.e. myTable,
name aiTable, abc...). Keep in mind, if you set up
sorting/filtering for two or more tables on the
page, then you must create different variable names
for each table.
'tbody-id' This is the id attribute of your table's <tbody> tag.
Example: <tbody id="actionitems">
NOTE: The id 'actionitems' must be quoted:
DO THIS: Table('actionitems')
NOT THIS: Table(actionitems)
defineColumn() Method
DESCRIPTION: This method defines the columns of the table as
well as their properties and methods.
WHEN TO USE: Must be run for every column of the table regardless
of whether the column is being sorted or filtered.
USAGE NOTES:
variable-name.defineColumn( column-index, 'sort-type' )
WHERE:
column-index This is the position of the column.
Column numbering starts with 0, such that the
first column is 0, the second is 1, the third
is 2... This parameter need not be quoted.
'sort-type' Refers to the type of content contained in the
cells of that column.
This information determines which sorting
algorithm is applied to the column.
Acceptable Values:
'numeric' Use if column is to be sorted
numerically (i.e. 1,2,3,11,22,33).
This option utilizes a stable
mergeSort algorithm.
'alpha' Use if column is to be sorted
by string value (i.e. 1,11,2,22,3,33)
This option utilizes a stable
mergeSort algorithm.
null Use the literal Javascript keyword
'null' (unquoted) if the column is not
to be sorted.
function You can also pass a function name or
a function literal to be used as the
sorting function which is passed as
an argument to javascript's built-in
sort() method which is considered
"unstable" (i.e. does not yield the
same order for 'equal' elements on
subsequent sorts).
This parameter need not be quoted,
and does not require the function
parenthesis ().
Example of a function literal:
function(a,b){return a[n]-b[n]}
defineRule() Method
DESCRIPTION: This method tests the contents of each cell in the
column against a regular expression pattern. If the
contents of the cell match the pattern, then a CSS
class is applied to just the matching cell or the
entire row of the matching cell.
WHEN TO USE: This method must be run only for columns that
require row or cell formatting based on cell
contents within that column.
USAGE NOTES:
variable-name.columns[x].defineRule(/regex-pattern/,'css-classname','row'|'cell')
WHERE:
/regex-pattern/ This is a regular expression pattern to be
tested against the column's cell data.
'css-classname' This is the name of an existing css class
defined within the <style> tag of the <head>
section. Example:
<style type="text/css">
.priority1 {color:#ff0000}
</style>
The CSS class defined above would be
referenced as 'priority1' (without the
leading dot).
'row'|'cell' This last parameter can be one of two values:
'row' or 'cell'. The value determines if
the CSS class is applied to the individual
cell, or the entire row.
defineFilter() Method
DESCRIPTION: This method associates a HTML form <input> element
with a column. The contents of the form <input>
element are used as a regular-expression pattern
to be tested for a match against the cells of that
column.
WHEN TO USE: This method must be run only for columns that are
to be filtered.
USAGE NOTES:
variable-name.columns[x].defineFilter( 'form-name','form-field-name' )
WHERE:
'form-name' This is the 'name' attribute of the HTML
form which is intended to filter the table
columns:
<form name="form1" method="post">
The name of the preceeding form is 'form1'.
'form-field-name' This is the name of the text input box that
the user enters the filter pattern for the
column:
<input type="text" name="priority">
The name of the preceeding form field is
'priority'.
cellRowProcessor() Method
DESCRIPTION: This is an optional method that gives the user
access to the internal processing loop in the
Table.array2table() method. This allows the user
to perform their own evaluation and manipulation
of cell contents and set HTML attributes for the
cell (TD) or row (TR).
WHEN TO USE: This method is optional.
USAGE NOTES:
variable-name.cellRowProcessor = function-name (cell-content, current-row, current-cell)
WHERE:
function-name This can either be a function literal (anonymous
function) or the name of a function which contains
the processing logic.
When referencing the name of a function, you do
not need to include the function parenthesis (),
however, make sure your function handles the
parameters (cell-content, current-row, current-cell).
cell-content This parameter is passed into your custom
function. It is the string value of the currently
processed cell's contents. You can name this
parameter anything you like.
current-row This parameter is passed into your custom
function by the array2table() method.
It is the index of the current row being
processed. You can name this parameter anything
you like.
current-cell This parameter is passed into your custom
function by the array2table() method.
It is the index of the current cell being
processed. You can name this parameter anything
you like.
oNew_row This is the name of the global variable of method
array2table(). It is a reference to the current
table row (TR) DOM element. User can add/modify/
delete attributes from this element.
oNew_cell This is the name of the global variable of method
array2table(). This is a reference to the current
table cell (TR) DOM element. User can add/modify/
delete attributes from this element.
The remainder of this page is not yet complete and has not been
checked for accuracy...
setHyphenLimit() Method
This method sets the limit on the length of the longest allowable
string in the table cell. This is intended to prevent table
stretching in situations where a URL is very long and forces the
column to be very wide.
An integer is passed as the single parameter which represents the
length at which a hyphen character (defined by columns[x].hyphenStr)
will be inserted into a long string thereby causing it to wrap
in the browser.
setAlphaSortLimit() Method
An integer is passed as the single parameter which represents the
number of leading characters of the cell's content that will be used
in the sorting algorithm.
A lower number will improve performance, but may reduce accuracy.
sortTable() Method
This method sorts the entire table based on the column specified by
the single parameter which represents the index of the sort column.
SET THE SORT FUNCTION
( This value was initially set using method defineColumn() )
variable-name.columns[x].setSortFunction( function(a,b){ return a[x]-b[x] } );
SET THE HYPHEN STRING
( This value was initially set in the Column class from method defineColumn() )
variable-name.columns[x].setHyphenStr( '-' );
REMOVE STYLE FROM EACH CELL AND ROW
variable-name.removeStyle()
FILTER TABLE BASED ON COLUMN X
variable-name.columns[x].filterTable()
INSERT SEQUENCE NUMBER IN COLUMN X
variable-name.autoNumberSeq(x)
HIDE COLUMN X FROM DISPLAYING AFTER SORTING/FILTERING
variable-name.columns[x].hideColumn()