递归获取子节点

节点ID,父节点ID,根据节点获取该节点下所有子节点。用于点击类别查询此类别下所有商品

        private string GetChildIdsById(int id)
        {
            List<ProductCategoryModel> listCategory = GetDataCategory();
            string ids = id.ToString();
             GetChilds(id, listCategory,ref ids);
             return ids;
        }
        private void GetChilds(int id, List<ProductCategoryModel> listc,ref string ids)
        {

            foreach (var item in listc.Where(p => Convert.ToInt32(p.FId) == id).ToList())
            {
                ids += "," + item.Id;
                GetChilds(Convert.ToInt32(item.Id), listc,ref ids);
            }

        }

 递归绑定目录(Winform)

        private void BindTreeView()
        {
            try
            {
                treeView1.BeginUpdate();
                treeView1.Nodes.Clear();
                List<ProductCategoryModel> listCategory = GetDataCategory();
                if (listCategory.Count > 0)
                {
                    //绑定根目录
                    ProductCategoryModel model = listCategory.Where(a => a.FId == -1).FirstOrDefault();
                    if (model != null)
                    {
                        TreeNode rootNode = new TreeNode();
                        rootNode.Text = model.Name;
                        rootNode.Tag = model.Id.ToString();
                        rootNode.ImageIndex = 0;
                        treeView1.Nodes.Add(rootNode);
                        AddNodes(rootNode, listCategory);
                    }
                    if (treeView1.Nodes.Count > 0)
                    {
                        treeView1.ExpandAll();
                    }
                }
                treeView1.EndUpdate();
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message, "提示");
            }

        }
        private static void AddNodes(TreeNode pNode, List<ProductCategoryModel> listc)
        {
            pNode.Nodes.Clear();
            foreach (var item in listc.Where(p => p.FId == Convert.ToInt32(pNode.Tag)).ToList())
            {
                TreeNode parentNode = new TreeNode();
                parentNode.Text = item.Name;
                parentNode.Tag = item.Id;
                parentNode.ImageIndex = 1;
                AddNodes(parentNode, listc);
                pNode.Nodes.Add(parentNode);
            }
        }

  

 

时间: 2024-08-13 16:19:05

递归获取子节点的相关文章

递归获取当前节点全部指定类型的子节点

在线预览 方法 使用nodeType判断类型,在allChildNodes方法内建立递归函数将allCN封装在方法内. <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Document</title> <style> p{ color: red; } span{ color: blue; }

TreeView获取子节点

1 if (e.Node.Parent!=null)//如果存在父节点 2 { 3 MessageBox.Show(e.Node.Text);//就显示当前选中的 4 } TreeView获取子节点

JS之获取子节点

在JS中获取子节点有以下几种方法: firstElementChild.firstChild.childNodes和children 我们通过一个例子来分析这几种方法的区别(获取div下的p标签) 输出结果是这样的: firstElementChild和Children 都成功获取到了p标签,那另外两个文本(#text)是什么东西呢? 其实是因为现在的标准浏览器会为空白符创建文本节点(标签之间换行或空格之类的都会产生空白符),而ie9以前的浏览器却不会. 我们知道DOM节点分为三大类 1.元素节

js获取子节点和修改input的文本框内容

js获取子节点和修改input的文本框内容 js获取子节点: $("#"+defaultPVItemId).children().eq(3); //获取某个选择器下的第四个子节点 例如:$("#"+defaultPVItemId).children().eq(3).find('input').val('当前位置'); //修改某个选择器下的第四个子节点的input节点的输入框文本内容 js修改属性内容: attr():该方法一般是获取某个属性值,或者修改某个属性值,

JS获取子节点、父节点和兄弟节点的方法实例总结

JS获取子节点.父节点和兄弟节点的方法实例总结 原生js 参考网址 Jquery 参考网址 原文地址:https://www.cnblogs.com/renxiuxing/p/10180558.html

ztree 获取子节点所有父节点的name的拼接

//获取子节点,所有父节点的name的拼接字符串function getFilePath(treeObj){if(treeObj==null)return "";var filename = treeObj.name;var pNode = treeObj.getParentNode();if(pNode!=null){filename = getFilePath(pNode) +">"+ filename;}return filename;} 原文地址:ht

zTree获取子节点

1 var ids=[]; 2 ids=getChildren(ids, treeNode);//TreeNode是选中节点,ids是子节点id数组,格式:123,223,4,55 1.获取直接子节点的id //返回值包含选中节点的id,即ids[0] function getChildren(ids, treeNode) { ids.push(treeNode.id);//选中节点id,即父节点id if (treeNode.isParent) { for (var obj in treeNo

不同浏览器中childNodes获取子节点个数

以一段简单的HTML代码为例 <div id="div"> <div id="div01"> 这是div01</div> <div id="div02"> 这是div02</div> </div> childNodes:获取某节点下的所有直接子节点 var node = document.getElementById("div").childNodes;

获取子节点

1 <!DOCTYPE html> 2 <html> 3 <head> 4 <meta charset="UTF-8"> 5 <title></title> 6 </head> 7 <script type="text/javascript"> 8 window.onload=function(){ 9 var b01=document.getElementById(&q