1. 程式人生 > >C# TreeView單擊父節點新增子節點

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);
        }
    }
}