/// <summary>
/// 模糊查询
/// </summary>
/// <param name="str"></param>
/// <param name="list"></param>
/// <returns></returns>
private IList<CV_QM_DEFECT_LABEL_GROUP> onFindKeyWord(string str, IList<CV_QM_DEFECT_LABEL_GROUP> list)
{ List<CV_QM_DEFECT_LABEL_GROUP> m_list = new List<CV_QM_DEFECT_LABEL_GROUP>();
foreach (CV_QM_DEFECT_LABEL_GROUP data in list)
{
if (data.GroupName.IndexOf(str) != -1)
{
m_list.Add(data);
}
}
return m_list; }
/// <summary>
/// 寻找所有相关根节点
/// </summary>
private List<CV_QM_DEFECT_LABEL_GROUP> findparent()
{
IList<CV_QM_DEFECT_LABEL_GROUP> entities = this.icv_QM_DEFECT_LABEL_GROUPBO_0.GetEntities();
IList<CV_QM_DEFECT_LABEL_GROUP> filterdata = onFindKeyWord(txtquery.Text.Trim(), entities);
List<CV_QM_DEFECT_LABEL_GROUP> entities1 = new List<CV_QM_DEFECT_LABEL_GROUP>();//转化为list方便使用方法
List<CV_QM_DEFECT_LABEL_GROUP> entities2 = new List<CV_QM_DEFECT_LABEL_GROUP>();//用于存放所有节点 foreach (var item in (IList<CV_QM_DEFECT_LABEL_GROUP>)entities)
{
entities1.Add(item);
}
foreach (CV_QM_DEFECT_LABEL_GROUP data in filterdata)
{
CV_QM_DEFECT_LABEL_GROUP temp1 = data;
while (true)
{
if (temp1.ParentGroupID.HasValue)
{
if (entities2.Find(s => s.GroupID.Equals(temp1.GroupID)) == null)
{ entities2.Add(temp1); }
CV_QM_DEFECT_LABEL_GROUP temp = entities1.Find(s => s.GroupID.Equals(temp1.ParentGroupID));
temp1 = temp;
}
else
{
if (entities2.Find(s => s.GroupID.Equals(temp1.GroupID)) == null)
{ entities2.Add(temp1); }
break;
}
}
}
return entities2.OrderBy(item => item.GroupLevel).ToList();
}
/// <summary>
/// 数据绑定
/// </summary>
private void bind()
{
IList<CV_QM_DEFECT_LABEL_GROUP> entities = findparent();
this.TreeView1.Nodes.Clear();
foreach (CV_QM_DEFECT_LABEL_GROUP cv_qm_defect_label_group in entities)
{
if (cv_qm_defect_label_group.ParentGroupID.HasValue)
{
TreeNode[] nodeArray = this.TreeView1.Nodes.Find(cv_qm_defect_label_group.ParentGroupID.Value.ToString(), true);
if ((nodeArray != null) && (nodeArray.Length > 0))
{
nodeArray[0].Nodes.Add(cv_qm_defect_label_group.GroupID.Value.ToString(), cv_qm_defect_label_group.GroupName, "Group.png", "Group.png");
nodeArray[0].Nodes[cv_qm_defect_label_group.GroupID.Value.ToString()].Tag = cv_qm_defect_label_group;
}
else
{
this.TreeView1.Nodes.Add(cv_qm_defect_label_group.GroupID.Value.ToString(), cv_qm_defect_label_group.GroupName, "Group.png", "Group.png");
this.TreeView1.Nodes[cv_qm_defect_label_group.GroupID.Value.ToString()].Tag = cv_qm_defect_label_group;
}
}
else
{
this.TreeView1.Nodes.Add(cv_qm_defect_label_group.GroupID.Value.ToString(), cv_qm_defect_label_group.GroupName, "Group.png", "Group.png");
this.TreeView1.Nodes[cv_qm_defect_label_group.GroupID.Value.ToString()].Tag = cv_qm_defect_label_group;
}
}
this.TreeView1.ExpandAll();
} }
}

  

c# winform devexpress TreeList过滤和绑定的更多相关文章

  1. Devexpress TreeList控件绑定显示父子节点对像

    今天一位同事咨询Devexpress TreeList控件绑定自动显示父子节点对像,但结果是不会显示带父子节点关系,而是将所有的节点作为父节点显示出来了,对像类的代码如下 public class I ...

  2. devexpress treelist 过滤

    FilterMode.Smart 问题:dev 的treelist加过滤条件后,如果根节点不符合条件,则不显示数据 处理方法:把filterMode设置为smart即可. 备忘.

  3. DevExpress TreeList使用教程之绑定多级树

    DevExpress TreeList使用教程之绑定多级树   概述:TreeList控件可以同时显示树结构和其他数据列,即在一个列上建立父子关系展开或收缩,同时还可以显示其他列的内容.在TreeLi ...

  4. DevExpress TreeList控件的复选框

    作者:jiankunking 出处:http://blog.csdn.net/jiankunking TreeList控件能够同一时候显示树结构和其它数据列,即在一个列上建立父子关系展开或收缩,同一时 ...

  5. 如何让DevExpress TreeList的每个结点高亮显示?

    概述:如何让DevExpress TreeList的每个节点高亮显示? 如何让DXperience TreeList的每个节点高亮显示? 效果如下: private void treeList1_Cu ...

  6. How to easily create popup menu for DevExpress treelist z

    http://www.itjungles.com/how-to-easily-create-popup-menu-for-devexpress-treelist.html Adding popup m ...

  7. DevExpress:下拉框绑定数据源 (ComboBoxEdit,LookUpEdit)

    DevExpress:下拉框绑定数据源 (ComboBoxEdit,LookUpEdit) DevExpress:下拉框绑定数据源 (ComboBoxEdit,LookUpEdit) // 设置下拉框 ...

  8. Devexpress treelist 树形控件 实现带三种状态的CheckBox

    树形控件是使用频率很高的一种控件.对于属性控件往往需要下面两个功能 1.TreeList带有CheckBox,并且节点要有三种状态(所有的子节点都选中,所有的子节点都没选择,一部分子节点选中).使用 ...

  9. 关于怎样获取DevExpress GridView过滤后或排序后的数据集问题(转)

    GridView用自带的过滤功能过滤数据后,想要获取过滤后的数据集,有两种方式: 一.笨办法就是循环遍历GridView,根据gridView.GetRow()或者gridView.GetDataRo ...

随机推荐

  1. 使用 Docker Alpine 镜像安装 nginx

    微镜像Alpine,Alpine Linux 是一款独立的⾮商业性的通⽤ Linux 发行版,Alpine Linux 围绕 musl libc 和 busybox 构建,尽管体积很小,Apline ...

  2. 基于Anaconda编译caffe+pycaffe+matcaffe in Ubuntu[不用sudo权限]

    目录 caffe 编译 环境 github下载caffe源码 依赖 修改源码的编译配置 报错 测试使用 pycaffe caffe matcaffe caffe 编译 环境 Ubuntu16.04 C ...

  3. SSM整合开发——基于SSM的OA系统

    一.课程介绍 链接: https://pan.baidu.com/s/18B-lWfOUnKZPvuVEHY_NmQ 提取码: ky7t 复制这段内容后打开百度网盘手机App,操作更方便哦 需要 to ...

  4. 解析YAML文件

    YamlMapFactoryBean yamlMapFactoryBean = new YamlMapFactoryBean(); yamlMapFactoryBean.setResources(ne ...

  5. 201871010117-石欣钰《面向对象程序设计(java)》第十五周学习总结

    项目 内容 这个作业属于哪个课程 <任课教师博客主页链接>https://www.cnblogs.com/nwnu-daizh/ 这个作业的要求在哪里 <作业链接地址>http ...

  6. Ant下载与安装

    1.登录http://ant.apache.org/bindownload.cgi 站点下载Ant最新版建议Windows平台下载*.zip压缩包 2.将下载到的压缩文件压缩到(G:software\ ...

  7. shell的使用技巧

    推荐使用的远程连接软件以及vi编辑器的基本使用 简介:远程连接软件 与 vi命令的基本使用 (1)软件: CRT 已经下载好的压缩包 直接双击 点击新建会话  点击下一步  输入主机名  下一步    ...

  8. LG1198/BZOJ1012 「JSOI2008」最大数 线段树+离线

    问题描述 LG1198 BZOJ1012 题解 我们把所有操作离线,设一共有\(n\)个插入操作. 于是提前建立\(n\)个数,全部设为\(-INF\) 接着逐个处理操作即可. \(\mathrm{C ...

  9. Linux学习笔记-第9天 与windows相同的分区知识

    可能是因为之前自己已经对分区.引导.操作系统已经有了足够的认知和实践经验,也可能是因为这个知识已经看了三遍的原因.最近笔记有点少. 不是特别同意老师 新硬盘也可以不分区的关点.默认硬盘不分区应该是不能 ...

  10. SpringBoot中的日志

    默认情况下,Spring Boot会用SLF4J + Logback来记录日志,并用INFO级别输出到控制台. SLF4J,即简单日志门面(Simple Logging Facade for Java ...