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

Sheets

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

Dragging

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

Calendars

1. Calendars exclude

Resources

1. Resources 2. Availability

2. Master detail nested tables

Master detail relation in plain tables shown as children of master rows

  • Plain master detail relation is used to show the same data in the expandable children in different layout.
    Master grid shows the data in rows and detail grid shows the one master row data in different structure, often vertically in column.
  • The data are defined only in master grid, only master grid stores the changes and can upload them back to server.
    Detail grid defines only layout, the columns and fixed (summary) rows.
  • The master data structure is usually defined in three levels tree:
    • 1. level Data row. The first level are the data rows displaying the data horizontally. They are the only defined rows, the other two levels are automatically created by grid according to the settings in row defaults.
      The Data row default row (<D>) should define the one child (Master row) with its Def set. And it should define also CopyTo attribute to copy the cells from Data row to Master row after their change.
    • 2. level Master row. The second level row is automatically created one child of the data row, usually fully spanned to show the detail grid in one (spanned) its cell.
      This row is shown, when the Data row is expanded.
      The Master row default (<D>) row should define all the detail children, with appropriate cell values and other attributes and also with CopyTo attributes to copy the values from the Detail row cells to the Master row.
      The Master row default (<D>) row should also define appropriate CopyTo attributes to copy the cell values from Master row to Data row and also to Detail row. It should have set also Expanded='0' CanExpand='0' to never show the detail rows in master grid.
    • 3. level Detail row. The third level rows are automatically created children of the master row. defined in the Master row default row.
  • Oposite to external detail grids you don't need to define the detail columns in master grid.
    If you use debug='check' to check errors in your XML, you will receive warnings for unknown attributes for these columns in detail rows. In this case you can ignore these warnings. Or list them in DebugCheckIgnore.
  • You can set attributes Sync and SyncId and optionally CfgId to synchronize all the detail grids.
    For example if a user changes size of column in one detail grid, all other detail grids will be resized accordingly. Similarly for sorting, filtering, grouping and search settings.
  • The <D> cell attributes

    CopyTo

    will define which master cells will be copied to which detail row(s) and cells.
    Usual value of the master CopyTo attribute is "Child_X,Y", where X is child row position from 0 and Y is column name.
    For example NAMECopyTo='Child_2,VALUE' means that master row's NAME cell will be copied to the third child row, to the cell name VALUE.
  • The child row cell attributes

    CopyTo

    will define which detail cells will be copied to which master cells.
    Usual value of the child CopyTo attribute is "Parent,Y", where Y is the master cell name.
    For example VALUECopyTo='Parent,NAME' means that child row's VALUE cell will be copied to the master row's cell NAME.
  • How it works


    • On master grid load there will be created hidden children for every row according to the <D> definition.
      To these children attributes will be copied values from the root rows, according to the <D> CopyTo attributes.
    • When some row in master grid is expanded to show the detail grid in children, all the master row's children are copied from master grid to detail grid and here are shown.
      In this time are all the child rows at two placed (in master grid and in detail grid) and all changes are synchronized and mirrored to both.
    • When a user changes some value in master grid, in root row, the change is automatically copied to its hidden children and also mirrored to detail grid.
      It is done by CopyTo attribute in <D> tag, similarly to the grid loading.
    • When a user changes some value in detail grid, the change is mirrored to hidden child in master grid and also copied to the parent row.
      It is done by CopyTo attribute in <D> child <I> tag.
  • API


    On showing the master row in detail grid is called API event OnShowDetail.
    After the row is shown is called OnShowDetailFinish.
    To manually show some master row in detail grid call API method ShowDetail.
    To refresh or clear detail grid call RefreshDetail.