TreeView recursively binds unlimited data categories, and treeview Recursion
TreeView recursively binds unlimited data categories
To implement a dynamic binding, You need to bind the data to the TreeView control when you implement unlimited classification data. The structure of the classification table is as follows:
Field |
Type |
Id |
Int |
ParentId |
Int |
Name |
Nvarchar (64) |
Implement Data Binding:
Private void ControlsDataBind () {tvCategory. nodes. clear (); List <Models. category> types = CommonNews. helper. operateContext. current. loadNewsTypes (); IEnumerable <Models. category> rootNodes = types. where (t => t. parentId = 0); TreeNode node = null; foreach (Models. category item in rootNodes) {node = new TreeNode (item. categoryName, item. categoryId. toString (); if (tvCategory. nodes. contains (node) {continue;} IEnumerable <Models. category> ts = types. where (t => t. parentId = item. categoryId); AddNodesToTree (ts, node, 0) ;}} private void AddNodesToTree (IEnumerable <Models. category> category, TreeNode node, int level) {TreeNode childNode = null; foreach (Models. category c in category) {childNode = new TreeNode (c. categoryName, c. categoryId. toString (); if (tvCategory. nodes. contains (childNode) {continue;} node. childNodes. add (childNode); AddNodesToTree (category. where (t => t. categoryId = c. parentId), childNode, level + 1);} tvCategory. nodes. add (node );}TreeViewBind