It is possible to create a load on demand behavior by simply binding the expand event and tell the handler to load and append the sub nodes for the current.
In this example I add a sub-node to each node with children with a unique Id starting with “itemLoader”. On the expand event I look for the itemLoader nodes, if one is found I do an ajax call for the sub nodes, add them to the current element, and finally remove the item loader.
Tried to post a code example here but wont work for me. Reply to this post if you like the sample code.