Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

ASP.NET TreeView and loading data on demand

Is there a way to force TreeView to load data on demand? In the other hand TreeView must load data only when a node is to be expanded. TreeView is binded to a collection of data that is implementing IHierarchyData.

like image 341
Afshar Mohebi Avatar asked Dec 28 '22 06:12

Afshar Mohebi


1 Answers

Three steps to do the trick:

1 - Set the TreeView.ExpandDepth to 0. This eliminates the expansion of the added TreeNode objects in the TreeView and shows the expansion symbol [+] next to each TreeNode that has the TreeNode.PopulateOnDemand property set to true.

2- Set the TreeNode.PopulateOnDemand to True for each branch TreeNode. When the TreeNode.ChildNodes collection is empty, the expansion symbol [+] will be showed only next to TreeNode objects that has TreeNode.PopulateOnDemand property set to true.

3- Handle the TreeView.TreeNodePopulate event to poulate branch nodes on expansion. This event will be fired when a TreeNode - with the TreeNode.PopulateOnDemand set to true - has been expanded right before the TreeView.TreeNodeExpanded event gets fired.

like image 184
Akram Shahda Avatar answered Jan 12 '23 19:01

Akram Shahda