You can set the loadOnDemand property of each JQTreeNode to true - this will show an expand image before the node and clicking on it will issue a callback to the server in order to fetch the child nodes. This is commonly referred to as Ajax or LoadOnDemand loading of nodes and allows loading infinite amount of nodes step-by-step. When a node marked as LoadOnDemand is expanded, the NodeRequested server-side event is fired and you can use the event-argument to get the Value of the expanded (parent) node. Using the Value you can then load child nodes in the eventArgs.ChildNodes collection - the nodes will be sent to the client-side via Ajax.