/// <summary> /// 数据库动态绑定TreeView /// 要求数据表最少有5个字段 /// 第1个字段:ID /// 第2个字段:ParendID /// 第3个字段:文本 /// 第4个字段:提示信息 /// 第5个字段:要转向的链接 /// </summary> /// <param name="tnd">TreeView.Nodes</param> /// <param name="sql">Select SQL</param> public static void Bind(TreeNodeCollection tns, string sql) { DataTable dt = DAL.DataSource.getDataTable(sql); tns.Clear(); InitTree(tns, dt, 0); return; } /// <summary> /// 初使化树(递归绑定) /// </summary> /// <param name="tns">TreeView.Nodes</param> /// <param name="dt">DataTable</param> /// <param name="parentID">ParentID</param> private static void InitTree(TreeNodeCollection tns, DataTable dt, int parentID) { TreeNode tn; DataRow[] rows = null; try { rows = dt.Select("M_parentID=" + parentID); foreach (DataRow dr in rows) { tn = new TreeNode(); tn.SelectAction = TreeNodeSelectAction.Expand; tn.Value = dr["M_Id"].ToString(); tn.Text = dr["M_Title"].ToString(); if (dr["M_Show"].ToString() != null) { tn.ToolTip = dr["M_Show"].ToString(); } if (dr["M_Url"].ToString() != null || dr["M_Url"].ToString() == "")//判断有没有URL { tn.NavigateUrl = dr["M_Url"].ToString(); } if (dr["M_Target"].ToString() != null)//判断当前节点在哪里打开 { tn.Target = dr["M_Target"].ToString(); } else { tn.Target = "main"; } if (dr["M_Collapse"].ToString() == "True")//判断是否折叠当前节点 { tn.Collapse(); } tns.Add(tn); InitTree(tn.ChildNodes, dt, Convert.ToInt32(tn.Value)); } } catch (Exception ex) { throw ex; } return; }