前台代码如下: <div id="Div" runat="server" style="border-style:none ;left:0px; overflow: scroll; width:100%; position: relative;top: 0px; height: 320px;"> <div style="margin-left:10px;" mce_style="margin-left:10px;"> <asp:TreeView ID="TreeView1" runat="server" ShowLines="True"> <NodeStyle ForeColor="#002280" /> </asp:TreeView></div> </div> 后台代码如下: //数据菜单公用方法 private DataView drv(string sql) { SqlDataAdapter sda = new SqlDataAdapter(sql, conn); DataSet ds = new DataSet(); sda.Fill(ds, "tree"); return ds.Tables["tree"].DefaultView; } //数型菜单 private void TreeView1_list() { DataView dv = drv("select * from software"); foreach (DataRowView datav in dv) { TreeNode tn = new TreeNode(); tn.SelectAction = TreeNodeSelectAction.Expand; tn.Text = datav["SW_Name"].ToString(); tn.Value = datav["SW_ID"].ToString(); tn.Expanded = false; //初始为折叠 //tn.NavigateUrl = "navbar.aspx?TvValue=" + datav["SW_ID"].ToString(); //tn.Target = "leftFrame"; TreeView1.Nodes.Add(tn); AddChildNodes(tn); } } private void AddChildNodes(TreeNode tn) { int SW_ID = Convert.ToInt32(tn.Value); DataView dv = drv("select * from Product where Pro_sw_id=" + SW_ID + ""); foreach (DataRowView datav in dv) { TreeNode ctn = new TreeNode(); ctn.Text = datav["Pro_edition"].ToString(); ctn.Value = datav["Pro_ID"].ToString(); ctn.Expanded = false; //初始为折叠 ctn.NavigateUrl = "ProductSee.aspx?id=" + datav["Pro_ID"].ToString(); ctn.Target = "mainFrame"; tn.ChildNodes.Add(ctn); AddChildNodes2(ctn, SW_ID); } } private void AddChildNodes2(TreeNode ctn, int a) { int sw_id = a; int Pro_ID = Convert.ToInt32(ctn.Value); TreeNode cctn = new TreeNode(); cctn.Text = "任务(" + PD_Num(Pro_ID) + ")"; cctn.Expanded = false; //初始为折叠 cctn.NavigateUrl = "ProDevelopSelect.aspx?PD_sw_ID=" + sw_id + "&PD_Pro_ID=" + Pro_ID + ""; cctn.Target = "mainFrame"; ctn.ChildNodes.Add(cctn); TreeNode cctn2 = new TreeNode(); cctn2.Text = "BUG(" + Bug_Num(Pro_ID) + ")"; cctn2.NavigateUrl = "BugSelect.aspx?Bug_sw_ID=" + sw_id + "&Bug_Pro_ID=" + Pro_ID + ""; cctn2.Target = "mainFrame"; ctn.ChildNodes.Add(cctn2); } protected DataSet seSearch(string sql) { SqlDataAdapter Sqlcmd = new SqlDataAdapter(sql, conn); DataSet ds = new DataSet(); Sqlcmd.Fill(ds, "mytable"); return ds; } //任务数 protected string PD_Num(object strArgument) { int Num = 0; string sql = "select distinct PD_id from ProDevelop where PD_pro_id='" + strArgument + "'"; Num = seSearch(sql).Tables[0].Rows.Count; return Num.ToString().Trim(); } //BUG数 protected string Bug_Num(object strArgument) { int Num = 0; string sql = "select distinct bug_id from bug where bug_pro_id='" + strArgument + "'"; Num = seSearch(sql).Tables[0].Rows.Count; return Num.ToString().Trim(); }