TreeView遞歸綁定無限分類數據
實現一個動態綁定,無限級分類數據時,需要將數據綁定到TreeView控件,分類表的結構是這樣的:
字段 | 類型 |
Id | int |
ParentId | int |
Name | Nvarchar(64) |
實現數據綁定:
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
新聞熱點
疑難解答