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

8. All server paging

Large grid with 1,000,000,000 root cells and next unlimited child cells

Debug information
  • This example shows very large grid with million of root rows, thousand of columns and unlimited count of child rows.
    This example uses dummy page data Page.xml loaded for every page and child page.
    In real application you need to serve the pages data accordingly to show them in grid.
  • As you can see, TreeGrid can display unlimited count of cells, here are displayed billions of cells.
    But, you must be able to serve such data from server side. Implementing server paging for such huge data is really not easy.
    You must use fast database and especially effective algorithm to fetch data for individual pages according to sort, filter, group and search settings, if you want to provide these features.
    And also provide the calculations, if you want to show some summary rows in grid.
  • This example sets these attributes for paging, all for Cfg tag:
    • Paging

      ='3' for

      server root paging

      • PageLength='100' as expected count of rows at one page, if the page has not set Count attribute.
      • MaxPages='2' to have only few rendered pages at a time and clear the unused pages soon.
      • FastPages

        ='500' to merge unused empty pages to bigger units to not render too many html tags in grid.
        Bigger number speeds up grid rendering on start, but slightly slows down the rendering of individual pages.
      • PageLengthDiv

        ='10' divides the height of the FastPages by this number to decrease height of the grid body, because the most browsers have limits in tag heights.
        The usual value is to divide (the whole count of root rows + expanded children) / 500,000 (150,000 if used ColPaging).
    • ChildPaging

      ='3' for

      server child paging

      • RemoveCollapsed='2' to clear the children when its parent becomes collapsed. It does not clear the data, only html display.
    • ChildParts

      ='2' for

      client paging of expanded children

      The client ChildParts with server ChildPaging provides server paging also for the expanded children.
      • ChildPartLength='100' specifies count of children in one child part.
        In this example it is set to maximum of the immediate children in one parent, so it renders (and also loads due ChildPaging='3') all children at once, but always on demand / scroll.
      • ChildPartMin='0' specifies count of children always rendered on start.
        Because of server child paging here, the children always need to be loaded first, so they cannot be rendered immediately.
      • MaxChildParts='4' to have only few rendered child parts at a time and clear the unused child parts soon.
    • ColPaging

      ='2' for

      client column paging

      Columns in TreeGrid can be paged only on client, the downloaded page must always contain data for all columns.
      • ColPageLength='10' specifies how many columns will be in one column page.
        The size of column page is usually slightly wider than grid area reserved for the variable columns.
      • ColPageMin='0' specifies how many columns will be always shown on the left.
        In this example no special column is on left, so minimal value is used to speed the grid up.
      • MaxColPages='2' to have only few rendered column pages at a time and clear the unused column pages soon.