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();
    
  • 相关阅读:
    loj#6433. 「PKUSC2018」最大前缀和(状压dp)
    PKUWC2019游记
    10. Regular Expression Matching
    9. Palindrome Number
    8. String to Integer (atoi)
    7. Reverse Integer
    6. ZigZag Conversion
    5. Longest Palindromic Substring
    4. Median of Two Sorted Arrays
    3. Longest Substring Without Repeating Characters
  • 原文地址:https://www.cnblogs.com/overblue/p/1897298.html
Copyright © 2011-2022 走看看