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

7. Server child paging in tree

Manual paging of child rows in tree on server side

  • Server side child paging is done by server script that generates the children for the parent rows on demand.
    Implementation of server child paging is not easy and requires a lot of work on server side!, although it is simpler to implement than server root paging. For more information see Server paging documentation.
    TreeGrid provides server side DLL/SO library that provides the most of work to support the server paging, but it can be used only some cases, see the DLL documentation.
  • How server child paging works

    • On start TreeGrid downloads layout and root rows as usual without server paging, from Layout_Url and Data_Url.
      If any row contains children, it will be handled by standard client paging, without any access to server.
      If the row contains no children, but has set


      attribute to the count of expected children, it will download the children from server on demand.
    • When the row with the Count attribute is expanded and becomes visible due scroll or is collapsed and is being expanded, TreeGrid uploads to data source


      the row identification (and also the sorting, filtering, grouping and search state) and downloads back all the children rows.
      If the children contain their own sub-children, they can be served similarly in both ways - normally included as children or with the Count attribute and downloaded on demand.
      The server script should find the child rows for the parent row and return them back to the grid. It can use the information about the grid state or use some data prepared in the first request for the body.
  • The server child paging is set by Cfg attribute


    Remember, all the children for one parent must be downloaded at once, there is no server paging among row children (ChildParts cannot be set to 3).
    But still is available client paging in children by Cfg attribute ChildParts='2'.
  • The downloaded children are automatically sorted and filtered (including filter by search) according to the actual state, but not grouped or searched (select, mark, find actions).
  • The server script implementing server child paging is responsible for grouping feature and summary calculations.
  • Calculations in server child paging

    If the parent row contains any function for children summaries or some fixed or higher parent row aggregates children deeply, the parent row must contain results of the aggregate functions for its children. Including filter application, if required.
    The attribute format is ColNameFuncName='result for children'. The attribute name can be changed by appropriate attribute of the aggregate function.
  • Static files

    In the most cases the children are created and served dynamically by some server script.
    But it is also possible, like in this tutorial example, to load the children from static files.
    For static file it is required to set Page_Method='Get'.
    In this case the data source address supports wildcards according to the row identification and sorting state: *id, *Rows.
  • If set Cfg attribute


    ='3', it removes the downloaded children on every collapse and downloads them again on expand.
    It is useful when data requires to be renewed and regenerated often.