欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

DevExpress实现TreeList向上递归获取符合条件的父节点

程序员文章站 2024-02-18 11:59:52
本文实例展示了devexpress实现treelist向上递归获取符合条件的父节点的方法,在一些项目开发中比较有实用价值,具体实现方法如下所示: 主要功能代码如下:...

本文实例展示了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());