News in version
TreeGrid Gantt chart SpreadSheet Examples Documentation Download Development Licensing Prices References Contacts Buy Try it free
Live examples
Grids and tree grids

Complex grid - the first one Complex grid - RTL mode Large table with paging Large table without paging Multiline & images - books Positions and spanning Photo album - images PivotTable - 2D grouping Schools - list and ratings File and directory browser Extended JavaScript API Sharing & synchronization 1 000 000 rows, 1 000 cols


Microsoft Excel sheet TreeGrid sheet TreeGrid sheet - RTL mode

Gantt and bar charts

Gantt & Network chart Gantt & Network chart - RTL Simple Gantt chart Big Gantt chart - 1000 rows Gantt chart tree by grouping Resources usage chart Run chart - bar chart Grouping bars - run groups Joined boxes and containers Line chart and XY charts

Live grid tutorials
Basic (rows and columns)

1. Basic grid 2. Rows 3. Columns 4. Default rows, columns 5. Rows manipulation 6. Rows identification

Cells (types, formats, edit)

1. Edits - inputs & multiline 2. Combos & checkboxes 3. Html, links, imgs, buttons 4. Space buttons & tabs 5. Permissions & validation 6. Cell CSS style & color 7. Conditional formatting 8. Custom controls & editing 9. Events & custom dialogs 10. Column & row spanning 11. Dynamic cell spanning

Tree (rows, columns, groups)

1. Row tree 2. Column tree 3. Grouping rows to tree

Sorting rows

1. Sorting rows

Filter and search

1. Filtering rows 2. Filtering in tree 3. Search & advanced filters


1. Dragging rows 2. Dragging between grids 3. Dragging external tag

Paging (rows, tree, columns)

1. Client root paging 2. Client child paging 3. Client column paging 4. All client paging 5. Adding pages dynamically 6. Server root paging 7. Server child paging 8. All server paging

Master and detail

1. Nested detail simple 2. Nested detail tables 3. Master detail simple 4. Master detail tables 5. Master detail more tables 6. Master detail in tree 7. Master detail trees 8. Nested detail nested deep 9. Nested detail server paging

Calculations (cell formulas)

1. Calculated columns 2. Calculated rows 3. Calculation order 4. Calculated rows in tree 5. Calculation order in tree 6. Calculated attributes 7. Editable calculated cells

Live Sheet tutorials
Sheet features

1. Row and column Index 2. Auto size (auto adding pages) 3. Row&column manipulation 4. Cell manipulation 5. Cell style 6. Editable formulas (ids) 7. Editable formulas (indexes) 8. Cell format 9. Outside edit 10. Auto tree

Live Gantt tutorials
Main bar (Gantt chart)

1. Main bar 2. Discrete main bar 3. Main bar plans 4. Summary tasks

Run bar (Bar chart)

1. Run array definition 2. Run JSON definition 3. Run summary definition 4. Run drag 5. Run groups & API 6. Run bar as task 7. Run box as task 8. Network diagram 9. Run join and drag 10. Run external drag 11. 2 fixed levels containers

Flags and points

1. Flags 2. Points

Display, zoom, paging

1. Header & background 2. Zoom 3. Paging 4. Synchronizing more Gantts

Dependencies & scheduling

1. Constraints 2. Dependencies 3. Schedule tasks 4. Critical path


1. Calendars exclude


1. Resources 2. Availability

2. Column tree

Expanding and collapsing columns and optionally also rows

  • Column tree

    is done by simply showing and hiding listed columns. There is no limit in column count or levels.
    The columns in tree, unlike row tree, are not nested and are defined normally like without the tree.
    The tree is simply defined by Expand button in some cell (usually, but not necessary, in Header) and list of columns to hide / show them on click to this button.
    To be the expanding fast, you should not change default setting of Cfg attribute FastColumns='1'.
    The initially hidden column should have set both


    ='0' and


    ='1' to be rendered on grid start as hidden column and the expanding will be fast.
  • For column tree define


    ='Expand' or


    ='Expand' in cell in grid, usually in Header cell.
    And define


    as list of columns to show or hide on click to the button.
    The Expand button will be marked as expanded, if any of the columns in ExpandCols will be shown.
    In more complex cases you can define cell


    attribute to preset the expanded state of the Expand button. It should be related to the visibility of the ExpandCols columns.
    The expanded columns don't need to be adjacent, nor in the same section. They should be adjacent only if some cells are spanned among them.
  • More Expand buttons can control the same column.
    In this case set the column attribute


    to specify how many Expand buttons will need to be expanded to show the column (and collapsed to hide the columns).
    Every expanding of button increase ExpandLevel of all columns in its ExpandCols list and every collapsing of the button decreases ExpandLevel of the columns.
    The column is shown if its ExpandLevel is positive (higher than 0). The column is hidden if its ExpandLevel is zero or negative (less or equal to 0).
    The ExpandLevel must be set accordingly to initial Expanded state of the buttons and visibility of the column.
    For example you have two buttons expanding one column, the column settings can be:
    • ExpandLevel='-1' Visible='0' - both the buttons must be expanded to show the column
    • ExpandLevel='0' Visible='0' - at least one button must be expanded to show the column
    • ExpandLevel='1' Visible='1' - at least one button must be collapsed to hide the column (visible state of the ExpandLevel='-1')
    • ExpandLevel='2' Visible='1' - both the buttons must be collapsed to hide the column (visible state of the ExpandLevel='0')
    Remember, there is no limit in count of buttons expanding the same column and also more columns can be expanded by one button, so there are unlimited combinations for expanding.
  • If set attribute


    ='1', it hides parent column when expanding children.
    It simply shows the column children instead of the column itself and vice versa.
  • Row tree

    - it is possible also to control visibility of any rows similarly to the columns behavior described above.
    The row list is defined by


    It is possible to define both ExpandCols and ExpandRows for one Expand button, usually to show next (Header) row with next Expand buttons for next column level(s).
    Remember, this row tree type is intended as support for the column tree. For standard row tree use rather the MainCol and nested rows or grouping feature, because it is much faster and support many next features.
  • There are also provided actions to expand/collapse one cell (ExpandCell) and all Header cells (ExpandAllCells,CollapseAllCells).
    There are also API methods to expand / collapse given cell (ExpandCell) and to check the expanded state of the cell (IsCellExpanded).