# Key Features

## Content



TreeView provides many different features that enable the developers to build intuitive and professional-looking applications. The main features for TreeView are as follows:

*   **Node Expansion**<br />TreeView allows you to expand either a single node or all nodes in the tree as per the requirement. The [TreeView](/componentone/api/mvc/online-mvc-core/dotnet-api/C1.AspNetCore.Mvc/C1.Web.Mvc.TreeView.html) control class provides the [ExpandOnClick()](/componentone/api/mvc/online-mvc-core/dotnet-api/C1.AspNetCore.Mvc/C1.Web.Mvc.TreeView.ExpandOnClick.html) method to expand a single node (parent or child), when you click on any node. And, [AutoCollapse()](/componentone/api/mvc/online-mvc-core/dotnet-api/C1.AspNetCore.Mvc/C1.Web.Mvc.TreeView.AutoCollapse.html) method, which automatically closes the sibling nodes of the current selected parent node. For more information about node expansion, see [Expanding and Collapsing Nodes](/componentone/docs/mvc/online-mvc-core/WorkingwithControls/TreeView/TreeViewFeatures/expanding-and-collapsing-nodes).<br /><br />
*   **Node Selection and Navigation**<br />TreeView supports both keyboard and mouse navigation of nodes. In addition, the control supports single and multiple node selection. You can select multiple nodes in a contiguous or a non-contiguous manner. For more information about navigation, see [Navigation Nodes](/componentone/docs/mvc/online-mvc-core/WorkingwithControls/TreeView/TreeViewFeatures/NodeNavigation).<br /><br />
*   **Lazy Loading**<br />TreeView allows you to delay the loading of a nodes child items until they are actually required. This is especially useful if you have a very deep tree, with lots of levels and child nodes and a simple example of this, is the folder structure of your Windows computer.<br /><br />
*   **Custom Nodes**<br />TreeView allows the user to set custom nodes, these nodes can be a simple text, image icons, multiple icons, and check boxes. You can customize the content of the TreeView nodes using the [formatItem](/componentone/api/mvc/online-mvc-core/dotnet-api/C1.AspNetCore.Mvc/C1.Web.Mvc.TreeView.OnClientFormatItem.html) event. The event handler parameters include the element, which represents the node and the data item being rendered. For more information about custom node content, see [Custom Node](/componentone/docs/mvc/online-mvc-core/WorkingwithControls/TreeView/TreeViewFeatures/Custom-Node).