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

DEVtreelist设置复选框以及获取选中数据

程序员文章站 2022-05-31 13:14:20
...

一.您将treeList.OptionsView.ShowCheckBoxes设置为True,树形结构前就会出现CheckBox选择框,如果您想达到选择父节点,子节点也同时选中的效果,需将treeList.OptionsBehavior.AllowRecursiveNodeChecking设置为True。

DEVtreelist设置复选框以及获取选中数据

DEVtreelist设置复选框以及获取选中数据

设置完即可看到效果,如图:

DEVtreelist设置复选框以及获取选中数据

二.获取选中行数据

 private void GetCheckedID(TreeListNode parentNode)
 {
    if (parentNode.Nodes.Count == 0) return;//递归终止
    foreach (TreeListNode node in parentNode.Nodes)
    {
       if (node.CheckState == CheckState.Checked)//判断当前节点选择状态
       {
          DataRowView drv = tlNav.GetDataRecordByNode(node) as DataRowView;//强转选中状态的行
          if (drv != null && drv[Constant.fnNodeType].ToInt() == 2)//判断条件,满足行不为null同时节点类型为2的行
          {
               ids.Add(drv[Constant.fnID].ToInt());//添加到集合中去
           }
        }
           GetCheckedID(node);//执行递归
     }
 }

   //按钮事件
   public override bool Save()
   {
       List<int> ids = new List<int>();//用来存储ID
       if (tlNav.Nodes.Count > 0)
       {
          foreach (TreeListNode node in tlNav.Nodes)//拿所有结点
          {
             GetCheckedID(node);
           } 
        }
          return true;
        }

ids即为选中的行id集合,可按需求调整!