News in version
TreeGrid Gantt chart SpreadSheet Examples Documentation Download Development Licensing Prices References Contacts Buy Try it free
Search in documentation
TreeGrid versions compatibility

Changes log (txt file) Using custom CSS from 13.3 to 14.0 Upgrading from 9.3 to 10.0 Upgrading from 5.9 to 6.0

Using in JavaScript frameworks

Angular Ember Express React Svelte Vue Other frameworks NodeJS server SalesForce LWC

Creating grid

Simple examples Basic information Creating grid Deleting grid Reloading grid Rendering grid Accessing grid by API

Data & communication
Data communication with server

Communication types AJAX communication AJAX SOAP envelope Submit communication Directly included data Data from JavaScript Cross domain / local load by JSONP Sessions (AJAX) Server response (AJAX) Synchronous communication (AJAX) Caching (AJAX) API (AJAX)

Download data

Settings for data download Layout XML structure Data XML structure

Upload data

Settings for data upload API for upload XML structure sent to server

Changing data from server

XML structure of download changes XML structure of request for a cell Synchronizing data with server

Input / output data formats

Complete list of tags Internal XML format Short XML format Extra short XML format DTD XML format JSON format

Cell basics

Cell type Cell format Dynamic format Dynamic type Cell value Reading / writing attributes by API Cell HTML Cell default Range or more values in one cell Cell with link URL Cell hint Cell tooltip / title Cell popup menu

Cell editing and changing values

Cell editability Dynamic editing Locking Defaults list Suggest list (auto complete) Tags input Changing cell value Mass cell change Clearing cells Editing cells Controlling <input> tag by JavaScript Input validation and restrictions Side checkbox Cell selecting

Calculations - cell formulas

Basics Formulas Mathematical functions Aggregate functions Special functions for actions Custom functions

Calculations - editable cell formulas

Basics Suggest list (auto complete) Defined names Actions for choosing cells Conditional functions Lookup functions Cell reference functions Logical functions Informational functions Mathematical functions Trigonometry functions Rounding numbers Number conversions String functions Date functions Summary functions Custom functions

Cell side buttons

Introduction Right side Button Left side Icon

Cell spanning

Column span Row span Dynamic spanning

Cell style and color

Basic grid style Sizing and scaling - responsive design Dynamic cell style attributes Cell CSS class Cell background color Dynamic cell border Cell HTML style Row color alteration Cell mouse cursor

Editable cell images

Insert image Edit image

Cell types
Automatic type - Auto String - Text, Lines & Pass
Number - Int & Float

Format Localization

Date and time - Date

Format Calendar component Dates dialog Localization

List & combo - Enum & Radio

Introduction Definition Related lists Enum specific Radio specific

Checkbox - Bool
Action button - Button

Introduction Basic clickable button Switch button Radio / tab button Menu button Combo switch button Combo radio / tab button Special Space rows with buttons

Panel with more buttons - Panel

Definition Standard fast panel Custom panel

HTML and special types

Html type EHtml type (editable) Icon type Abs type List type Editable Link type Editable Img type DropCols type Upload File type


Column basics Column index Column visibility Column visibility menu Column selecting Column tree Auto column tree Column position and moving Column adding and copying Column deleting Column width Column API

Row basics

Rows by functionality Rows by position Row name Row id Row index

Default rows

Description Example of default rows Example of changing default row Attributes

Row tree

Tree attributes Actions & API for expand / collapse

Row identification

Setting row id attribute Row id attribute in tree Row id created from cell values API for row ids

Row visibility
Row adding and copying

Five ways of adding rows to grid Adding and copying restrictions Adding new empty rows Copying existing rows

Row deleting Row moving and dragging Row selecting Row height Row API Space rows
Sorting rows

Sort settings Controlling sort position Comparing strings Sorting actions Sorting API

Grouping rows to tree

Group settings Creating groups Comparing strings Created group rows <D Group='1'/> User interface to choose grouping Grouping actions and API

Filtering rows

Filter settings Comparing strings User interface to choose filter Filter actions and API

Searching in rows and cells

Search settings User interface for search Search actions and API

Printing grid

Print settings Choosing items to print Page size Print API

Print / export to PDF

Introduction Client side settings Printing options Client side API Server side API Data sent from client to server

Export to Excel or CSV

Introduction and export types Basic settings Styling export XLSX export Gantt export CSV export Old XLS / XHTML export Export API Communication with server Client export Server export

Import from Excel

Basic settings Sheets manipulation

Copy & paste rows via clipboard

Copy & paste permissions Copying to clipboard Pasting from clipboard

Master - detail grids

Introduction External master - detail grids Nested master - detail grids Synchronizing grids Other attributes for master - detail

Pivot tables

Pivot attributes & API Pivot formulas

External objects (custom JavaScript objects) Undo & Redo
Gantt and bar chart
Gantt objects

Gantt objects list Display settings Edit settings

Main bar

Definition of main bar and plans Main bar as Task Edit settings Main bar content and side html Tip on mouse hover Vertical position and height Style specific attributes API to manipulate Main bars Actions Side text (deprecated) Real Flow (deprecated)

Run bar

GanttRun Definition Extended definition Run bar as Task Edit settings Save format Selecting Run boxes Run box content and side html Tip on mouse hover Box identification Vertical position and height Style specific attributes Overlaid (Error) boxes Containers for more boxes Dragging - moving and resizing API to manipulate Run boxes Actions Run special formulas

Summary task

Main for Main Main for Run Editable Main Editable Run

Gantt icons - Flag & Point

Flag - icon with text Point - math points

Gantt display objects

Header - column captions Cell and column Background Vertical movable Line Mark & Progress line

Gantt zoom

Zoom options Chart size limits Zoom selection Paging in Gantt chart

Dependency, constraints & schedule

Introduction Data units Defining dependencies Dependency colors and shapes Changing dependencies Correcting dependencies Scheduling algorithm Project date constraints Task date constraints Critical path - Slack (Float)

Gantt calendars

Global base calendar Local calendar Calendar list Calendars dialog Other settings

Gantt resources

Resources list Resources assign Resources filter Resources calculations Availability chart Resource usage chart Generated resource usage chart

Gantt popup menu Gantt API
Line and XY points charts

Charts in grid cells Chart JSON definition Base chart settings Basic attributes Size Axis and caption Individual chart lines Data sources Visual settings API for standalone usage

Paging in large grids
Paging root rows

Paging types and attributes Auto adding root pages API for paging

Pager components

Side pager Side pager type Pages Side pager type Gantt Side pager type Custom Pager with navigation buttons & edit Pager as list of page indexes

Paging in tree

ChildPaging - load / render on expand MaxChildren - limit children count ChildParts - load / render on scroll

Paging columns

Paging types and attributes Auto adding column pages API for column paging

Server paging

Server paging for root rows Server communication in root paging Root paging in very large tables Server paging in tree Server communication in tree paging XML Request for Data in root paging XML Download Data in root paging XML Request for root Page / children XML Download root Page / children API for server paging

TreeGrid DLL/SO for server paging

Introduction Compatibility with TreeGrid control Using TreeGrid server DLL/SO ASP.NET C# ASP.NET VB PHP JSP Java TreeGrid server concepts Function reference Calculations

JSON menus and dialogs
JSON menu description JSON menu definition example
Menu settings

Base attributes Visual settings Key navigation Behavior Size and scroll

Menu item settings

Base attributes Clickable item Inactive caption Collapsible sub level Popup sub menu Columns Bool item Enum item Edit item

Custom menu in JavaScript

Show custom menu Custom menu position Custom menu advanced settings Custom menu JavaScript events Custom menu JavaScript methods

Calendar dialog Custom calendar & JavaScript events Custom dialog in JavaScript
Global grid settings
Grid size and scroll

Default behavior Maximize grid height and width Update size according to the content Let a user to control the grid size Widths of individual sections Other scrolling attributes and API

Media rules - responsive design

Language & regional setup (Text.xml) Translate texts dynamically Change language

Grid cursor - Focus & hover

Focused cell and row Focused cell range Move and copy focused cells Filling cell values by dragging Tabulator navigation Key navigation Cursor look - focus & hover

Selecting rows, cells and columns

Selecting base Selecting rows Selecting cells Selecting columns

Global settings

Status messages Configuration menus Configuration menu - options Configuration menu - columns Configuration menu - print / PDF Configuration menu - export Default toolbar Useful API function Help file


Animations base Row animations Column animations Cell animations Animations for undo / redo Animations for server side changes Dialog animations

Grid configuration in cookies
Mouse & key events & actions

List of event handler types TreeGrid mouse events Mouse event names Key and mouse button prefixes Touch event names Event targets Assigning event actions / callbacks Event action parameters Action name suffix Calling actions from JavaScript Creating custom actions Focused vs. Actual cell TreeGrid key events JavaScript API events

Mouse API event TreeGrid files
Debugging and testing

Debug window Automated testing


TreeGrid documentation glossary

Here is full online documentation for TreeGrid, Gantt chart and SpreadSheet.
Choose desired document in left side tree or find it in documentation search.
In this documentation glossary is described how to use the documentation.

Documentation items

version <tag> type


[default value]   specialty
XML or JSON attribute definition. The XML and JSON formats have the same attributes and tags/objects.
versionTreeGrid version(s) where the attribute was changed. See the versions.
tagA list of XML tags or JSON object where the attribute can be used. See all possible tags.
The most of XML/JSON attributes can be accessed also by JavaScript API, it is also described in the tag list.
typeInformational attribute type according to the attribute meaning. See all possible types.
In XML all attributes are strings, in JSON the values can be number or strings regardless on this type.
In JavaScript API the property type is integer or string according to the value itself, not according to this type.
default valueInitial attribute value. The default values are preset usually in Defaults.xml, but some of them are also set directly in TreeGrid code.
If the default value is not defined, the item has initially null or 0 or empty string according to its type.
specialtyInformation that the attribute is saved to and loaded from cookies (therefore can be ignored in XML/JSON data) and information how to avoid it.
Or information that the attribute is uploaded to server.
Or information that the attribute can be undone (supports Undo), when set <Cfg Undo='1'/>.
version object type


(parameters)   read only
JavaScript API method, API event or API variable definition.
All these API items are part of Extended API. The Extended API is not included in any component license and must be purchased apart!
versionTreeGrid version(s) where the attribute was changed. See the versions.
objectJavaScript object this item belongs to as its property or method. See all possible objects.
typeInformational property or function return type according to the item meaning. The real JavaScript type can be different. See all possible types.
parametersAre shown for JavaScript functions. Note, the parameter types and names are just informational, the only exact thing is the parameters order.
read onlyIs listed for API variable that should not be changed.
version <Actions>

Action ...FSARCWO

attached to
JavaScript action. It can be attached to any XML/JSON mouse or key event, usually in <Actions> tag.
Many actions are attached by default to some event in <Actions> tag in Defaults.xml, e.g. <Actions OnClickButtonSave="Validate AND Save"/>
The action can be called also from JavaScript as API method of grid object, named with Action prefix, e.g. Grids[0].ActionSave ( ); for action named Save.
versionTreeGrid version(s) where the attribute was changed. See the versions.
attached toInformation where the action is attached by default (in Defaults.xml) and restrictions to which events can be attached.
...FSARCWOIt means that there are more available action names, with suffixes from all combinations of listed letters.
See the Action name suffix chapter.
version <XML event>


XML/JSON mouse or key event.
The XML/JSON event handler code you write directly to the XML/JSON data (oposite to JavaScript API event written in JavaScript code).
In documentation there are listed only events special for described features.
All standard XML/JSON mouse and key events are described in Mouse events and Key events.
versionTreeGrid version(s) where the attribute was changed. See the versions.
parametersThe XML/JSON mouse or key event has always these parameters: (TGrid Grid, TRow Row, TCol Col, TEvent Event);
where Row, Col is cell under mouse for mouse event or focused cell for key event.
The Grid, Row, Col and Event variables can be used in the event handler code as JavaScript objects;
e.g. <Actions OnClickCell="alert('clicked cell '','+Col)"/>
version formula type


Formula that can be used in Formula attribute code, e.g. <I RFormula="sum()"/>.
versionTreeGrid version(s) where the attribute was changed. See the versions.
parametersAre shown as for JavaScript function. Note, the parameters types and names are just informational, the only exact thing is the parameters order.
version ... ...


Any of the above listed items that is deleted and should be no longer used.
The most of deleted items are still present and usable in TreeGrid, they are only deprecated.


Last update done to the item

new 10.0Item was released in the given version (the item did not exist in previous versions).
chg 10.0Major update to item was done in the given version (the usage of the item was changed).
upd 10.0Minor update to item was done in the given version (like new parameter added to function or new value added to bit array or flags).
renamed 10.0The item has been renamed in the given version (the old name is usually still usable, but deprecated).
deleted 10.0The item has been removed since the given version (the item name is usually still usable, but deprecated).


Where the XML / JSON attribute can be used

There can be listed more places like <C> <cell> - item is an attribute of column or cell.
For <C><I><cell> or <I><C><cell> the attribute is read from cell, next if null from column and next if null from row; except it is stated different order in the attribute description.
For JSON format the tag names are the same, just with different syntax.

<treegrid,bdo>Basic TreeGrid definition on HTML page, defines TreeGrid data sources. It can be used <treegrid> or <bdo> tag.
<Cfg>XML attribute of tag <Cfg>basic grid configuration
<C>XML attribute of tag <C>whole column settings
<C Panel>XML attribute of tag <C> or <Panel>whole column settings for column type Panel
<B>XML attribute of tag <B>settings of page
<Root>XML attribute of tag <Root>row setting of virtual root row as parent of all first level rows
<D>XML attribute of tag <D>row or column setting of default row or column
<I>XML attribute of tag <I>row setting of normal row within columns (Data, Header, Filter)
<Header>XML attribute of tag <I> or <Header>setting of Header row
<Filter>XML attribute of tag <I> or <Filter>setting of Filter row
<Space>XML attribute of tag <I> or <Space>setting of any Space row (row kinds Space, Group, Search, Toolbar)
<Group>XML attribute of tag <I>, <Space> or <Group>row settings special for grouping
<Search>XML attribute of tag <I>, <Space> or <Search>row settings special for searching
<Toolbar>XML attribute of tag <I>, <Space> or <Toolbar>settings of Toolbar row
<cell>XML attribute postfix of tag <I>setting of any row cell, set with column name as prefix (e.g <I Col1Visible=’0’/>)
<I cell>XML attribute postfix of tag <I>setting of any non Space cell (row kinds Data, Header, Filter)
<Header cell>XML attribute postfix of tag <I> or <Header>setting of Header cell
<Filter cell>XML attribute postfix of tag <I> or <Filter>setting of Filter cell
<Space cell>XML attribute postfix of tag <I> or <Space>setting of any Space cell (row kinds Space, Group, Search, Toolbar)
<Group cell>XML attribute postfix of tag <I>, <Space> or <Group>special setting of cell for grouping
<Search cell>XML attribute postfix of tag <I>, <Space> or <Search>special setting of cell for searching
<Pager>XML attribute of tag <Pager>side pager settings
<IO>XML attribute of tag <IO>data communication, settings of individual data request or response
<Changes>XML attribute of tag <Changes>downloaded changes from server
<P>XML attribute of tag <P>definition of attributes in XML short and extra short format
<Resources>XML tag as child of tag <Resources>a list of Gantt resources
<R>XML attribute of tag <R>an individual Gantt resource
<Zoom>XML tag as child of tag <Zoom>a list of Gantt zoom levels
<Z>XML attribute of tag <Z>an individual Gantt zoom level
<Calendars>XML tag as child of tag <Calendars>a list of Gantt calendars
<E>XML attribute of tag <E>an individual Gantt calendar
<Lang>XML tag as child of tag <Lang>language dependent settings
<Format>XML attribute of tag <Format>language dependent settings for numbers and dates, <Lang> <Format /> </Lang>
<MenuCfg>XML attribute of tag <MenuCfg>settings of configuration menu dialog
<HTML tag>HTML taga tag used in HTML, the <bdo> tags <treegrid> tags


Owner objects of JavaScript API items

API variableJavaScript property of grid (TGrid object)
API methodJavaScript method of grid (TGrid object)
API eventJavaScript method of global Grids array called as callback for defined event (like event handler)
This method is defined by you in your code and called by TreeGrid from its code!
For example define: Grids.OnClick = function(G,row,col,x,y){ alert("clicked "","+col); }
API TCol var.JavaScript property of column (TCol object), the object is accessible by grid.Cols array
API TRow var.JavaScript property of row (TRow object)
global func.JavaScript global function (a method of window object)
global prop.JavaScript global property (a property of Grids object)
global variableJavaScript global variable (a property of window object)
TCalendarJavaScript property, method or event of TCalendar object - JSON calendar dialog
TDialogJavaScript property, method or event of TDialog object - JSON dialog
TMenuJavaScript property, method or event of TMenu object - JSON menu
TMenuItemJavaScript property, method or event of TMenuItem object - one menu item in JSON menu
TEditJavaScript property, method or event of TEdit object - JSON edit input
TPositionJavaScript property, method or event of TPosition object - position of JSON dialog or menu
TLineChartJavaScript property, method or event of TLineChart object - Line chart object
TChartLineJavaScript property, method or event of TChartLine object - one line in Line chart object


Standard (like C++) item type, not JavaScript type

The type is not JavaScript variable type, but it is similar to standard type in languages like C++, C# or Java.
The type is shown only in documentation, it is used nowhere in XML, JSON or JavaScript. The sense of the type in XML / JSON is to more precisely define what is expected to get in the item, it has not any other special meaning.
voidIn API: method does not return value or event does not expect return value
boolIn XML: 0 or 1 (not true or false)
In API: any expression that can be converted to true or false
intInteger value, in API it should be Number type
It can be also bit array – every bit in the number has its own meaning and the value is sum of the bits
(1.bit=1, 2. bit=2, 3.bit=4, 4.bit=8, 5.bit=16, 6.bit=32, 7.bit=64, 8.bit=128, 9.bit=256, ...)
Examples of bit array: to set first, third and sixth bit set 1+4+32 = 37, to set second, third, fifth and tenth bit set 2+4+16+512 = 534
stringString value, in API it should be String type
string[ ]In XML: one string with individual items separated with comma: "One,Two,Three"
In API: array of strings
string[*]In XML: one string with individual items separated by first character in the string – the string starts with the separator: "|One|Two|Three"
The separator can be any Unicode character not included in any of the separated items
string[ ][ ]In API: two dimensional array of strings
TColIn API: column object (not name)
TRowIn API: row object
TGridIn API: grid object, all API events get it as the first parameter