C# TreeView单击父节点添加子节点

/// <summary>
/// 初始化树形结构
/// </summary>
/// <param name="tv"></param>
public static void InitTmplTreeView(TreeView tv)
{
                   
    IList<Sys_Dictionary> list = BLLSvc.Dic.GetByGroupCode(Sys_Dictionary.CAE_BIZ_TYPE_GROUP_CODE); //获取父节点要绑定的数据
    if (list == null)
    {
        return;
    }

    foreach (Sys_Dictionary item in list)
    {
        TreeNode tnTool = new TreeNode(item.Name) { Tag = item }; //父节点要显示的数值字段
        tv.Nodes.Add(tnTool);
    }          
}

/// <summary>
/// 处理树形视图选择事件
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void tvTmpl_AfterSelect(object sender, TreeViewEventArgs e)
{
    if (e.Node == null)
    {
        return;
    }

    GetChildrenWfCAETreeNodes(e.Node);
    e.Node.ExpandAll();  //展开所有节点
}  

/// <summary>
/// 获取子节点
/// </summary>
/// <param name="parentNode"></param>
public static void GetChildrenWfCAETreeNodes(TreeNode parentNode)
{
    if (parentNode == null)
        return;

    parentNode.Nodes.Clear();

    if (parentNode.Tag is Sys_Dictionary)  //判断是节点的类型
    {
        string itemCode = BLLSvc.Dic.GetItemCode(Sys_Dictionary.CAE_BIZ_TYPE_GROUP_CODE, parentNode.Text);
        //通过父节点的itemCode去寻找要关联的子节点
        Wfm_Template findTmpl = new Wfm_Template();
        findTmpl.CAETypeDic = itemCode;
        IList<Wfm_Template> tmplList = BLLSvc.Tmpl.FindByEntity(findTmpl);//获取到子节点信息
        
        foreach (Wfm_Template tmpl in tmplList)
        {
            TreeNode tr = new TreeNode(tmpl.Name) { Tag = tmpl };
            parentNode.Nodes.Add(tr);
        }
    }
}

猜你喜欢

转载自blog.csdn.net/qq_35106907/article/details/84643138