一.您将treeList.OptionsView.ShowCheckBoxes设置为True,树形结构前就会出现CheckBox选择框,如果您想达到选择父节点,子节点也同时选中的效果,需将treeList.OptionsBehavior.AllowRecursiveNodeChecking设置为True。
设置完即可看到效果,如图:
二.获取选中行数据
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集合,可按需求调整!
标签:node,Dev,drv,树形,选中,parentNode,TreeList,Nodes,节点 From: https://www.cnblogs.com/friend/p/18073115