With the rapid advancement of information technologies, it is hard to imagine a business web application without the ability to present data in a tabular format. Every day business people are exposed to large amounts of information that may also require hierarchical division. Without using special tools such as a TreeGrid (also known as TreeTable), it can be very time-consuming to analyze big data sets and make right decisions.
TreeGrid is a user interface element that helps to show complex data in rows and columns with expandable/collapsible nodes and enables users to interact with it. It combines the qualities of standard DataGrid and Tree components. The main peculiarity of TreeGrid is that it allows you to group arrays of data hierarchically, thereby contributing to more convenient work with the given information. This functionality is highly demanded in financial and analytic systems, reporting tools, CRMs, etc.
If you are involved in creating interfaces for a business-oriented web solution, it will be helpful for you to read this article. Here you will become familiar with a collection of commercial JavaScript TreeGrid components that can be integrated into apps based on popular JavaScript frameworks and provide end-users with a variety of useful features for managing data.
DHTMLX TreeGrid
DHTMLX TreeGrid is an easy-to-use JavaScript UI control designed for displaying big data in hierarchical tables of any complexity without performance limitations. It comes with a wide range of configuration options that serve to fine-tune all table elements to your needs. For instance, you can specify the size of your tree grid and adjust the height and width of columns to their content automatically, "freeze" columns, insert multiline content and custom HTML items in cells, and much more.
This JavaScript TreeTable also allows working with numeric values of various formats and automatically performing calculations (min, max, average) in the table’s footer/header. If it is necessary to clarify any information in the tree table, you can apply custom tooltips. When talking about interactivity, end-users can manipulate data by selecting rows, resizing columns, moving rows and columns by drag-and-drop, sorting and filtering data, and via inline editing. It is also possible to work with table data offline after exporting it to Excel. It renders equally well on desktops and touch devices. The grid look is easily modified via CSS.
Easy to follow initialization process and TypeScript support help to make DHTMLX TreeGrid a part of your app much faster. This control is delivered in a bundle with other UI widgets included in the DHTMLX Suite package or as a stand-alone component.
Trial version: DHTMLX TreeGrid
Price: from $509
Webix TreeTable
Webix TreeTable is a JavaScript widget with a responsive design that helps to arrange data in hierarchical tree-like structures. In fact, this tool encapsulates the properties and methods of two other Webix data management widgets (DataTable and Tree) and enhances their functional capabilities. It enables you to expand/collapse even entire tables. Thus, it is possible to compactly place many tables on a single page without resorting to pagination.
Webix TreeTable works seamlessly with large amounts of multidimensional data thanks to dynamic loading. Multiple filtering and sorting options give users opportunities to quickly find required pieces of information in the table and, if necessary, edit them on the fly. Various selection and copy-paste modes make it much easier to borrow data from the table. The widget also allows utilizing math formulas and charts (Bar, Pie, Spline, etc.) in the grid. The list of available data exporting formats includes PDF, PNG, Excel. The documentation page provides more interesting details on the practical usage of this JS widget and its features.
Trial version: Webix
Price: from $848 (for a full package of UI widgets)
EJS TreeGrid
EJS TreeGrid is a DHTML component that provides different options for organizing data on an HTML page, including table, bar chart, grid, tree view, and as its name suggests a tree grid. Written in pure JavaScript, this component enables you to configure a tree table in accordance with your requirements and equip it with core functions typical for this kind of UI tool (sorting, filtering, grouping, searching). The tree table built with EJS TreeGrid can include any number of nesting levels in cells. The component supports various cell types, paging types, editing masks, and formatting values.
EJS TreeGrid also gives a chance to add some extra tools to the grid such as a Gantt chart, calendar, rich text editor. You can work with external objects like Flash Adobe or custom JS objects in the tree table. It is also possible to set animations for various TreeGrid actions. The tree grid interface can be adapted to various languages using the localization feature (including the RTL option for Middle East languages). The appearance of the tree grid is fully customizable via CSS styles. The table content can be saved to Excel or PDF format and printed if needed. If you want to learn more details about EJS TreeGrid, check out the documentation section.
Trial version: EJS TreeGrid
Price: from $600
jqxTreeGrid
jqxTreeGrid is a part of the jQWidgets library used to lay out data utilizing a tree-like setup. This lightweight jQuery widget offers a range of core features with flexible configuration for manipulating data the way you need. Large volumes of data can be broken down into smaller parts for more convenient navigation using the paging feature. Load on Demand (also known as a virtual mode) is one more function that helps to ensure optimal performance with big data in tree grids. With this feature onboard, child rows of the tree are generated and initialized only when the parent rows are opened. Other noteworthy features of this widget are pinned columns, aggregates, custom editors, cell formatting, custom cell rendering.
jqxTreeGrid supports multiple data binding and exporting options. You can make the tree grid interface understandable to users from different countries by enabling various locales. Utilizing customizable default themes, you can create a unique design for your tree grid. If you want to test all capabilities of the jqxTreeGrid widget in practice, there is a special jsEditor tool.
Trial version: jQWidgets
Price: from $199 (for a full package of UI widgets)
Ignite UI Tree Grid
The Ignite UI library provides a number of UI components for the faster accomplishment of various web development goals, including hierarchical presentation of data. Two Ignite UI tools suit this purpose, namely - Hierarchical Grid and Tree Grid. Both grids are similar in terms of functionality, as they support the main features that are commonly expected from a grid component such as sorting, filtering, and in-cell editing. But the Tree Grid is a more preferable option when building a table where the parent and child nodes have the same structure or if you want to offer end-users a simpler experience.
Like in the case with jqxTreeGrid, good performance with large data sets is ensured by implementing pagination and Load on Demand features. Infragistics also equips developers with two online tools to facilitate the work with Ignite UI grid components. The HTML5 Page Designer tool helps to try Ignite UI widgets in action with simple drag-and-drop manipulations, while the Theme Generator allows tuning the look and feel of the tree grid to your liking. Online documentation will give you a clear idea of how to use the potential of this JS component to the maximum.
Trial version: Ignite UI
Price: from $849 (for a full package of UI widgets)
Syncfusion Tree Grid
Syncfusion Tree Grid is a JavaScript control dedicated to presenting self-referential hierarchical data in the form of tables. It is one of the numerous ready-made UI components included in the Essential JS 2 library. This tool comes with a set of useful features that are crucial for effective data management such as sorting, filtering, editing, aggregations, stacked headers, etc. Thanks to the mobile-optimized design, Syncfusion-based tables are displayed well on devices with different resolutions and screen orientation. Using special templates, you can create custom grid elements (headers, toolbars, etc.). As for the tree grid appearance, Syncfusion provides not only a package of default themes but also the Theme Studio application for defining your own style.
Data can be loaded in the table from local and remote sources (JSON, RESTful, OData, and WCF services). The control relies on several performance-related techniques. You can apply row virtualization and infinite scrolling to improve user experience with large bundles of data. In addition, it is also possible to enable the immutable mode that boosts the tree grid re-rendering performance. The control also supports localization and internationalization libraries that help to make the text content and date/number objects in the tree table understandable to users from different countries. If users require a hard copy of the information presented in the grid, export it in PDF, Excel, CSV formats. More details on Syncfusion Tree Grid and how to get started with it in real projects can be found on the documentation page.
Trial version: Syncfusion
Price: from $995 (for a full package of UI widgets)
Final words
Summarizing the above, we can say that a tree table is one of the most important and complex UI components that can be complemented with numerous features. Therefore, integrating this functionality in a web application from scratch seems like not the best decision, especially if you don’t have much time. In my opinion, it is more effective to use any of the reviewed JavaScript components. Which one to choose? Follow three simple steps: select several products that fit your budget, test them using trial versions, opt for the most suitable option. If you have in mind any other JavaScript TreeGrid tools, feel free to share your suggestions in the comment section.