本文實例展示了DevExpress實現TreeList向上遞歸獲取符合條件的父節點的方法,在一些項目開發中比較有實用價值,具體實現方法如下所示:
主要功能代碼如下:
/// <summary>/// 向上遞歸,獲取符合條件的父節點/// </summary>/// <param name="node">需要向上遞歸的節點</param>/// <param name="conditionHanlder">判斷條件【委托】</param>/// <returns>符合條件的節點【TreeListNode】</returns>public static TreeListNode GetParentNode(this TreeListNode node, Predicate<TreeListNode> conditionHanlder){ TreeListNode _parentNode = node.ParentNode;//獲取上一級父節點 TreeListNode _conditonNode = null; if (_parentNode != null) { if (conditionHanlder(_parentNode))//判斷上一級父節點是否符合要求 { _conditonNode = _parentNode; } if (_conditonNode == null)//若沒有找到符合要求的節點,遞歸繼續 _conditonNode = GetParentNode(_parentNode, conditionHanlder); } return _conditonNode;}
代碼使用方法如下:
TreeListNode _node = e.Node;TreeListNode _condionParent = _node.GetParentNode(n => n.GetNodeType() == NodeType.Cab);//獲取類型為CAB類型的父節點Trace.WriteLine(_condionParent.GetName());
新聞熱點
疑難解答