zoukankan      html  css  js  c++  java
  • TreeList控件实现数据过滤功能

      DevExpress系列控件自我使用Delphi时已经使用了相当长的一段时间,即使到现在仍然觉得非常好用。今年11月份开始转入到C#开发,使用的第三方控件自然也是DevExpress系列。由于业务需要,要求使用TreeList控件实现数据过滤功能。TreeList自身是提供了一个数据过滤功能,但这个功能有一个缺点。就是如果目录树是多级目录树,并且父节点不符合过滤条件时,即使里面的子节点符合过滤条件,也不会显示对应的节点。

      好在TreeList控件还提供了一个FilterNode事件,所以我们可以通过FilterNode事件进行处理:

    private void treeList1_FilterNode(object sender, DevExpress.XtraTreeList.FilterNodeEventArgs e)
    {
        string NodeText = e.Node.GetDisplayText(treeList1.Nodes[0].Id);
        bool IsVisible = NodeText.ToUpper().IndexOf("过滤的内容".ToUpper()) >= 0;
    
        if (IsVisible)
        {
            DevExpress.XtraTreeList.Nodes.TreeListNode Node = e.Node.ParentNode;
            while (Node != null)
            {
                if (!Node.Visible)
                {
                    Node.Visible = true;
                    Node = Node.ParentNode;
                }
                else
                    break;
            }
        }            
    
        e.Node.Visible = IsVisible;
        e.Handled = true;            
    }
    

      当我们需要进行过滤时,只要调用:

    treeList1.FilterNodes();
    
  • 相关阅读:
    78. Subsets
    93. Restore IP Addresses
    71. Simplify Path
    82. Remove Duplicates from Sorted List II
    95. Unique Binary Search Trees II
    96. Unique Binary Search Trees
    312. Burst Balloons
    程序员社交平台
    APP Store开发指南
    iOS框架搭建(MVC,自定义TabBar)--微博搭建为例
  • 原文地址:https://www.cnblogs.com/overblue/p/1897298.html
Copyright © 2011-2022 走看看