Exemplo n.º 1
0
        /// <summary>
        /// 添加节点
        /// </summary>
        internal int AddNode(TreeGridNodeCollection nodes, object info)
        {
            var parentId = (int)info.GetValue(nameof(IParent.ParentId));

            if (parentId == 0)
            {
                return(nodes.Add(info.GetValues()).RowIndex);
            }
            for (int i = 0; i < nodes.Count; i++)
            {
                if (nodes[i].Cells[IdColumn()].Value.ToInt() == parentId)
                {
                    if (!nodes[i].IsExpanded)
                    {
                        nodes[i].Expand();
                    }
                    return(nodes[i].Nodes.Add(info.GetValues()).RowIndex);
                }
                if (nodes[i].Nodes.Count > 0)
                {
                    if (!nodes[i].IsExpanded)
                    {
                        nodes[i].Expand();
                    }
                    var index = AddNode(nodes[i].Nodes, info);
                    if (index > -1)
                    {
                        return(index);
                    }
                }
            }
            return(-1);
        }